分配點擊收聽只是想知道有什麼區別:不同方式在jQuery的
$("#some_div").click(customFunction);
和
$("#some_div").click(function() { customFunction(); });
...
function customFunction() {
console.dir(this);
}
分配點擊收聽只是想知道有什麼區別:不同方式在jQuery的
$("#some_div").click(customFunction);
和
$("#some_div").click(function() { customFunction(); });
...
function customFunction() {
console.dir(this);
}
在你定義了兩個第二函數一個匿名和其他customFunction,首先你只有一個匿名函數。
可能沒有區別。除了第一個選項,你只聲明瞭一個函數。
在實踐中,它可能不會有所作爲(如果它目前工作兩種方式)。
然而,理論上存在很大的差異。
event
參數。在第一種情況下,這是通過customFunction
,第二種情況不是。這意味着第一個參數的值將是undefined
。this
。然而,您的第二種情況的customFunction
執行中的this
將指向window
。customFunction
變量的值。如果你這樣做,你的第一個案例將執行舊功能,然而,第二個案例會「尊重」customFunction
的新值並執行該功能。一般來說,第二種情況更靈活(但也承擔額外的嵌套函數調用的開銷)。如果你真的需要更多的靈活性(見點#3),而不犧牲(點#1和#2),使用下面的結構:
$("#some_div").click(function() { customFunction.apply(this, arguments); });
這將同時使用原來的參數還有this
(中外函數)調用內函數(customFunction
),但仍然允許在執行事件處理程序時換出customFunction
的實現。
'this'的值是不同的。 – jantimon 2013-03-08 15:10:52