最近在imooc看深入浅出js,上机实践,做了一些笔记和心得。
今天还是在复习js基础,把imooc深入浅出js的this总结一下
代码实现一下,才能说服自己啊
1.全局this(浏览器)
this指的是window
2.一般函数的this(浏览器)
*node是global
*严格模式(strict)会指向undefined
3.作为对象方法的函数的this
注意,这个myway()函数是独立的,如果直接输出,this指向依旧是window
4.对象原型链上的this
5.get/set方法与this
使用这两个方法改变原型的属性值,
(插一句object.DefineProperty很有趣vue.js和avalon.js都是通过它实现双向绑定的,这个坑下次补!)
6.构造器中的this
这有个坑。
如果直接调用函数,this指向window。
如果作为构造器去调用,this会指向原型为f的空对象,无return则返回10。
7.call/apply方法与this
注意这里都是ab,但是this.a、this.b指的是o的属性
还会输出一些无法名状的函数值,比如以下
8.bind方法与this
o.f()是通过对象属性调用,所以this指向o
o.g()虽然是被o调用,但是按照以前bind的绑定,显示test