猿问

js中call方法的实现

Function.prototype.call2 = function(context) {

    context.fn = this;

    var args = [];

    for(var i = 1, len = arguments.length; i < len; i++) {

        args.push('arguments[' + i + ']');

    }

    eval('context.fn(' + args +')');

    delete context.fn;

}

是为了模拟call的实现,请问为什么要push一个字符串,下面再用eval?直接传入arguments[i],然后下面用context.fn(args)为什么不可以?

LEATH
浏览 800回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答