本人新手,学习javascript定时器的时候遇到了一点疑惑,可能是个老生常谈的问题了,但是还是想请教一下各位前辈,问题与代码如下:varCat=function(){varo={say:function(){console.log('saysomething');}}setInterval(function(){o.say()},1000)returno}varcat=Cat()cat.say=function(){console.log('Hello');}问题描述:我定义了一个Cat类(用的工厂模式),然后这个类里面有一个方法say(),同时还有一个setInterval执行这个'方法',然后实例化这个类,重新声明一次say()这个方法.我的困惑:在于,输出是'Hello',而不是我一开始定义的那个类里面的那个方法,这个地方不是特别理解个人理解:由于setInterval传进来的回到函数是一个方法,实际上那个o指代的是实例化以后的那个实例对象,而不是一开始的那个类?但是感觉好像有点懂了,但是又有点不懂,或者其实根本不懂,到底该如何正确清晰理解这段代码的运行过程,希望各位前辈能有一个详细的解答,多谢.
杨__羊羊
GCT1015
相关分类