我只想在定義此函數時調用函數。我在節點或瀏覽器控制檯中嘗試以下代碼,它是可行的。
slurp = function() { console.log('slurp'); }
slurp_callable = ('slurp' in this && typeof(this['slurp']) == 'function');
console.log('slurp is callable (this)?', slurp_callable);
if (slurp_callable) { this['slurp'](); }
但是,如果我等待文件準備就緒(使用jQuery):
$(document).ready(function() {
console.log("ready!");
slurp = function() { console.log('slurp'); }
console.log('slurp is callable (this)?', ('slurp' in this && typeof(this['slurp']) == 'function')); //False
console.log('slurp is callable (self)?', ('slurp' in self && typeof(self['slurp']) == 'function')); //true
});
還給我假,這和真實的自我。
我明白自己是我以前的這個價值,但是我的這個變化是什麼時候?爲什麼?
如何在不使用自我的情況下檢查並調用$(document).ready函數?
是的,但在第二個示例中,我並沒有在調用ready事件處理函數時調用的函數內部定義函數slurp。這是我不明白的地方。爲什麼這個功能目前無法訪問。 – Naremy
@Naremy - 在第二個例子中,'slurp'是一個全局的(與window.slurp'相同),但'this'與'window'不同,所以'this.slurp'是'undefined'。 – Quentin