gpt4 book ai didi

javascript - 如何将包含数组的对象添加到类中

转载 作者:行者123 更新时间:2023-12-03 10:55:28 24 4
gpt4 key购买 nike

我正在寻求实现这样的东西:

var settings = (function () {
this.data = {
array1: [],
array2: [],
array3: []
};

this.hasSettings = function () {
//todo
};
})();

我想用它做的是:

settings.data.array1.push(item);

不幸的是我得到了:

Uncaught TypeError: Cannot set property 'datas' of undefined

有人可以帮助我并解释实现此目的的正确方法吗?

问候

最佳答案

IIFE 中的

white console.log(this) ... this 是一个 window 对象。为了使您的代码正常工作,请将 IIFE 更改为立即创建实例:

var settings = new function () {
this.data = {
array1: [],
array2: [],
array3: []
};

this.hasSettings = function () {
//todo
};
};

当您编写 new function(){...} 时,您会立即使用 new 关键字调用构造函数。 new 关键字创建一个具有 this 属性的新对象并返回它(除非构造函数返回非原始值)。

当您使用IIFE时,您只需使用 this 的属性填充全局对象(浏览器中的 window)。

关于javascript - 如何将包含数组的对象添加到类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28278490/

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