标签:
要先明白存在call和apply的原因,才能记得牢一点:
在javascript OOP中,我们经常会这样定义:
function cat(){ } cat.prototype={ food:"fish", say: function(){ alert("I love "+this.food); } } var blackCat = new cat; blackCat.say();
function convertToArray(nodes) { var array = null; try { array = Array.prototype.slice.call(nodes, 0); } catch (ex) { array = []; for(var i=0, l=nodes.length; i < l; i++){ array.push(nodes[i]); } } }
var func1 = function(arg1, arg2) {};就可以通过 func1.call(this, arg1, arg2); 或者 func1.apply(this, [arg1, arg2]); 来调用。其中 this 是你想指定的上下文,他可以任何一个 JavaScript 对象(JavaScript 中一切皆对象),call 需要把参数按顺序传递进去,而 apply 则是把参数放在数组里。
标签:
原文地址:http://www.cnblogs.com/salody/p/5950063.html