1. this是什么?
1)任何函数本质上都是通过某个对象来调用的,如果没有直接指定就是window
2)它的值是调用函数的当前变量
3)所有函数内部都有一个变量this
2.如何确定this的值
这点听视频讲的是:
test(): window
p.test(): p
new test(): 新创建的对象
p.call(obj)
其实,我还是喜欢这个分辨的。
1.函数调用指向window
2.对象调用指向对象
3.构造函数调用指向实例对象
这个this我掌握并不是很好,有时候辨不出来,就在我后面看原型链时,不知道就迷了。
这点本来我是没注意,是我朋友问的。说这个test1是window的方法,为什么下面var fn=new Fn() fn.test1()可以调用。其实这一点不用迷,可能是看视频看蒙了(时间长)。就我现在就只能笑笑了。原因就是,调用函数this指向window。前面调用了Fn(),所以test1是window的方法。而下面new了一个,不还是Fn()嘛。
又是把自己逗开心的一天!!