gpt4 book ai didi

javascript - 为什么在 Javascript 对象构造函数中使用 this 关键字

转载 作者:行者123 更新时间:2023-12-03 02:12:15 25 4
gpt4 key购买 nike

var x = new y ('hello');

function y (mes){
this.mes = mes;

//x.mes = mes;
//Why using object name will not work, with this it will work.
//please read the description what i am trying to ask.
}

问题说明

我正在学习 Javascript,来自 MDN,

我正在讨论使用对象的主题。链接是 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects

我的主题是使用对象构造函数

在这里,他们基本上是说,如果您想创建类似的对象,请使用此对象构造函数。

首先我注意到他们使用关键字 this在函数代码中。我有点困惑,然后我用谷歌搜索他们为什么使用 this关键字而不是简单地使用变量。

这有点有意义,因为我通过谷歌搜索了解到的是这个,那个this关键字指的是我用关键字 new 启动的对象。 ,

所以我认为我应该能够直接使用对象名称而不是使用 this

我将在函数之前启动对象,然后我应该能够使用对象名称,但它不起作用。

(我知道如果我这样做,它实际上违背了使用对象构造函数的目的,但这不是重点,重点是我是否理解这在这种情况下意味着什么或者为什么它不工作。)

最佳答案

简而言之

使用var您在构造函数中声明局部变量,它将无法在构造函数外部访问

this不是变量而是对象的属性,只要对象存在,this就会存在

在下面的示例中,我们无法在调用函数中访问 a,但通过使用 this 我们可以访问 b

Es6 级

假设您声明测试类

class Test{
constructor(){
var a = "hello";
this.b = "world";
}
call(){
console.log(t.b);
console.log(t.a);
}
}


var t = new Test();

console.log(t.b); //will print "world"

console.log(t.a); //will print "undefined"

与正常功能相同的概念

function Test() {
var a = "hello";
this.b = "world";
}

关于javascript - 为什么在 Javascript 对象构造函数中使用 this 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49504587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com