JavaScript中this指向怎么用

发布时间:2021-11-14 17:31:08 作者:小新
来源:亿速云 阅读:210

这篇文章主要介绍JavaScript中this指向怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

JavaScript中this也是一件很神奇 事情,在面向对象(比如java)中表示一个当前的对象引用,但是在JavaScript中this不是固定不变的,而是随着运行环境的改变而改变。

this

老规矩先看代码:

方法中

function test(){
    console.log(this);
}

JavaScript中this指向怎么用

对象中

function test(){
    console.log(this);
}

JavaScript中this指向怎么用

在方法中,this表示该方法所属的对象。因为第一个是window上的方法,所以打印了window,而eat方法是Person方法,所以打印除了对象Person。

所以可以看出单独在控制台使用this, 表示全局对象。

JavaScript中this指向怎么用

隐藏的this

在对象,可以提前声明一个一个:

var Person1={
    name:"张三",
    age:18
}
var Person2={
    name:"李四",
    age:19
}

这样写会很麻烦,所以可以借鉴一下java类的概念,可以这样:

var Person=function(name,age){
    this.name=name,
    this.age=age
       
}
var Person1=new Person("张三",18);
var Person2=new Person("李四",19);

JavaScript中this指向怎么用

其实在new的时候隐藏了一个return this,如果不使用new的话,发现其没有返回这个新建的对象。

JavaScript中this指向怎么用

那么现在补全一下看:

var Person=function(name,age){
    this.name=name,
    this.age=age
    return this;
}
var Person1=new Person("张三",18);
var Person2=new Person("李四",19);

JavaScript中this指向怎么用

这样的话,甚至可以伪造一个this的效果:

var Person=function(name,age){
    var that={};
    that.name=name,
    that.age=age
    return that;
}
var Person1=new Person("张三",18);
var Person2=new Person("李四",19);

JavaScript中this指向怎么用

严格模式

this在严格模式和非严格模式下有些神奇的情况

function test() {
  return this;
}

# 如果js前面添加"use strict" 代表是严格模式
"use strict";
function test() {
  return this;
}

JavaScript中this指向怎么用

这个可以看出在非严格模式下函数中,函数的所属者默认绑定到 this 上。所以可以打印出全局,但是严格模式下函数是没有绑定到 this 上,这时候 this 是 undefined。

以上是“JavaScript中this指向怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. javascript中this指向的用法
  2. JavaScript函数中this有哪些不同的指向

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

javascript this

上一篇:怎么理解Service Mesh

下一篇:html表格单元格的边框不显示的解决方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》