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/