gpt4 book ai didi

Javascript:构造函数 this 关键字

转载 作者:行者123 更新时间:2023-12-02 14:01:55 27 4
gpt4 key购买 nike

下面两个代码段有什么区别:

function HelloService(){
var service = this;
service.itemList = []

service.hello = function(){
return "Hello World!!";
};

service.addItem = function(){
service.itemList.push(1);
}
}
<小时/>
function HelloService(){
var service = this;
var itemList = [];

var hello = function(){
return "Hello World!!";
};

service.addItem = function(){
itemList.push(1);
}

}

因为据我了解this hello 函数内部和 hello 函数外部指向同一个实例。

有人可以用JAVA解释一下上述问题吗?

编辑:我添加了 addItem功能。这里我不明白 service.itemList 之间的区别和var itemList里面addItem function 。您能解释一下该函数内部的差异吗?

最佳答案

Javascript 函数中的局部变量不会添加为 this 的属性。第一个相当于:

function HelloService(){
this.hello = function(){
return "Hello World!!";
};
}

但不是:

function HelloService(){
var hello = function(){
return "Hello World!!";
};
}

这不会执行任何操作,因为 hello 引用的函数从未被使用过,并且在 HelloService 范围之外无法访问。

关于Javascript:构造函数 this 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40352191/

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