Javascript 理解timer.js中的返回
我只是在浏览,在Chrome中玩开发工具,基本上我这样称呼这个插件:Javascript 理解timer.js中的返回,javascript,jquery,Javascript,Jquery,我只是在浏览,在Chrome中玩开发工具,基本上我这样称呼这个插件: var timer = $.timer(function(){ $('#add-html').html('Hello There !!'); }); timer.set({ time:5000 , autostart :true }); 即使演示也使用相同的示例,现在执行以下行时: var timer = $.timer(func
var timer = $.timer(function(){
$('#add-html').html('Hello There !!');
});
timer.set({ time:5000 , autostart :true });
即使演示也使用相同的示例,现在执行以下行时:
var timer = $.timer(function(){
$('#add-html').html('Hello There !!');
});
在插件内部执行并返回此
,但此时返回此
是什么?它是整个插件的一个实例吗?或者它到底是什么,我知道如果没有它就会抛出错误,但是返回此
在这里的具体用途是什么,它的值是什么
在JavaScript中,我经常使用返回此
链接等,但不知何故,我无法理解返回此
的上下文用法。有人能解释一下吗 您应该在调试器中运行它(设置断点或debugger
语句),然后在该点上计算this
对我来说,this===jQuery
在第一次运行时为真,this instanceof$.timer
在后续运行时为真。返回此retuns$.timer instancehmm。。。因此,插件在第一次运行时将属性附加到jQuery
。这似乎有点危险,例如,它将用自己的方法覆盖toggle
方法…是的,我没有编写插件,但通常我看到使用$.fn.pluginName=function(…)
,它在$.prototype
上创建插件,而不是作为直接属性。$.fn在这里没有意义,因为这意味着它被附加到一个元素上(这里不需要),所以它只需要被分离。只是确认你的发现。啊,它并没有覆盖$.fn上的方法,而是直接覆盖$上的方法。所以切换不是问题,只是不是个好主意。我怀疑作者是否意识到它在做什么,我将提交一个问题。