写点什么

JavaScript this 全解析

作者:源字节1号
  • 2022 年 5 月 26 日
  • 本文字数:514 字

    阅读完需:约 2 分钟

JavaScript  this全解析

JavaScript中的this只有如下几种情况,并按他们的优先级从低到高划分如下:

独立函数调用,例如getUserInfo(),此时this指向全局对象window

对象调用,例如stu.getStudentName(),此时this指向调用的对象stu

call()apply()bind()改变上下文的方法,this指向取决于这些方法的第一个参数,当第一个参数为null时,this指向全局对象window

箭头函数没有this,箭头函数里面的this只取决于包裹箭头函数的第一个普通函数的this

new构造函数调用,this永远指向构造函数返回的实例上,优先级最高。

var name = 'global name';var foo = function() {  console.log(this.name);}var Person = function(name) {  this.name = name;}Person.prototype.getName = function() {  console.log(this.name);}var obj = {  name: 'obj name',  foo: foo}var obj1 = {  name: 'obj1 name'}
// 独立函数调用,输出:global namefoo();// 对象调用,输出:obj nameobj.foo();// apply(),输出:obj1 nameobj.foo.apply(obj1);// new 构造函数调用,输出:p1 namevar p1 = new Person('p1 name');p1.getName();
复制代码

this 解析流程图


如若转载,请注明出处:开源字节   https://sourcebyte.cn/article/134.html

用户头像

源字节1号

关注

一个着迷于技术又喜欢不断折腾的技术活跃者 2022.03.09 加入

一个着迷于技术又喜欢不断折腾的技术活跃者。喜欢并热爱编程,执着于努力之后所带来的美好生活!

评论

发布
暂无评论
JavaScript  this全解析_软件开发_源字节1号_InfoQ写作社区