我繼承了一些我不明白的代碼。使用「this」作爲函數?
function updateQty() {
obj.find('.inputAmount').html(qty);
input.val(qty);
$.each(change_actions, function() {
this(qty);
});
}
究竟是什麼.each
函數內部發生了什麼?我以前從未見過this(var)
這種方式。
我繼承了一些我不明白的代碼。使用「this」作爲函數?
function updateQty() {
obj.find('.inputAmount').html(qty);
input.val(qty);
$.each(change_actions, function() {
this(qty);
});
}
究竟是什麼.each
函數內部發生了什麼?我以前從未見過this(var)
這種方式。
筆者建立自己的事件綁定的,所以機會是change_actions
是訂閱當有事運行功能數量。
嘗試這樣:
// initialize with a value
var actions = [
function(x){ console.log('I see a new x: ' + x); }
];
// add actions "later"
actions.push(function(x){ console.log('Yup, a new x: ' + x); });
// Then execute them:
$.each(actions, function(){
this(4);
});
// add another one still
actions.push(function(x){ console.log(x + ' looks new'); });
// re-iterate over them
// Then execute them:
$.each(actions, function(){
this(5);
});
和結果:
// first iteration (only 2 subscribed events)
[15:56:50.030] "I see a new x: 4"
[15:56:50.030] "Yup, a new x: 4"
// second iteration (now we have 3, one was added later)
[15:56:50.030] "I see a new x: 5"
[15:56:50.030] "Yup, a new x: 5"
[15:56:50.030] "5 looks new" // <-- new subscription
把它想的click
事件以及如何通過結合$('element').click()
添加訂閱。每次點擊發生時,都會觸發任何訂閱的事件。
this
的$.each
內指的是你是通過循環當前對象。
的對象必須是爲了傳遞東西它的功能。
您可以與下面的例子:
var change_actions = [
function(x) { alert(x + 1); },
function(x) { alert(x + 2); }
];
var qty = 5;
$.each(change_actions, function() {
this(qty);
});
的jsfiddle:http://jsfiddle.net/fuyz2/
change_actions必須是函數數組。以純JS,它的工作原理是:函數應用於(V){返回這個(V);} [1,2,3] .MAP(申請,正則表達式); – dandavis
添加'的console.log(本)'或'console.dir(這)'回調身體,看看是什麼'this'指。 – fardjad
的$。每個()函數可以被用於任何集合遍歷,無論是一個對象或一個數組。在數組的情況下,每次回調都會傳遞一個數組索引和相應的數組值。 (該值也可以通過此關鍵字...)從這裏:http://api.jquery.com/jQuery.each/ – svillamayor