0
我得到了兩種不同的行爲,我希望有人能解釋爲什麼。將JQuery.append.bind與匿名函數傳遞給Array.forEach循環之間的區別
function Test(id) {
this.target = $(id);
this.children = [ $('<div/>').text("A"), $('<div/>').text("B") ];
}
// will add 0 1 A B
Test.prototype.addToTarget = function() {
this.children.forEach(this.target.append.bind(this.target));
};
// will add A B
Test.prototype.addToTargetEx = function() {
var target = this.target;
this.children.forEach(function(child){
target.append(child);
});
};
可以添加一些背景?這兩種不同的行爲會是什麼?調用兩個不同的函數? – Typo 2015-04-05 21:43:01
我的猜測是迭代遍歷對象中的每個屬性,而另一個遍歷DOM元素。 – Anthony 2015-04-05 21:47:10
或者類似的限制範圍:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this – Anthony 2015-04-05 21:53:08