最近在看Underscore.js的源码,看到代码中很多地方用到了call,特意研究了一下call的实现。call主要是用于改变this的指向,可以通过以下代码来实现。
Function.prototype.myCall = function (content) {
var content = content || window;
content.fn = this;
var args = [];
for(var i = 0;i<arguments.length;i++){
args.push('arguments[' + i + ']');
}
var result = eval('content.fn('+args+')');
delete content.fn;
return result;
}
JavaScript call源码实现
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 找到fullcalendar.js, 找到代码为 isRTL:false,这句话 输入以下几句 monthName...
- 通过call和apply的模拟实现,带你揭开call和apply改变this的真相 call一句话介绍 call:...