我只想在定义此函数时调用函数。我在节点或浏览器控制台中尝试以下代码,它是可行的。
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