-
全局环境下的this
- 严格模式下是undefined
- 非严格模式下是window
-
上下文对象调用
-
bind/call/apply改变this指向
- 区别:
- bind不会立即调用,而是返回一个新函数(绑定函数),其内的this指向为创建它时传入bind的第一个参数,而传入bind的第二个及以后的参数作为原函数的参数来调用原函数。
- 区别:
-
构造函数和this
-
new操作符调用构造函数,具体做了
-
创建一个新的对象
-
将构造函数的this指向这个新的对象
-
为这个对象添加属性和方法
-
最终返回新的对象
-
1234步可以用代码表示
var obj = {} obj.__proto__ = Foo.prototype Foo.call(obj) 如果构造函数中显式返回一个值,且返回的是一个对象,那么 this 就指向这个返回的对象;如果返回的不是一个对象,那么 this 仍然指向实例。
-
-
-
箭头函数的this指向
- 箭头函数的this,根据上下文的作用域来决定的
-
this的优先级【显比隐高,new 比bind高】
-
显式绑定【call、apply、bind、new】
-
隐式绑定【根据调用关系确定的
this
】 -
使用
const
声明的变量不会挂载到window
全局对象
-
总结一下js的this指向的问题
最新推荐文章于 2024-11-14 10:56:19 发布