gpt4 book ai didi

javascript - 创建一个 javascript 对象来模拟类和静态方法?

转载 作者:行者123 更新时间:2023-11-29 10:25:41 24 4
gpt4 key购买 nike

有人可以帮忙吗?我在 javascript 中有以下对象......据我所知,我日历的每个“实例”都有自己的变量。

我的问题是我需要插入一个名为“InitilizeHolidays”的方法/函数名称,这需要添加到数组中,但所有实例中的细节都必须相同......我正在考虑某种静态方法调用,如果这是可能的..

当然,如果我将它插入到“原型(prototype)”中,它将特定于每个实例,我需要它来影响所有实例。

是否可以初始化影响所有实例且仅影响特定实例的变量?我必须在哪里插入这些?

非常感谢任何帮助

function Calendar() {
// I presume variables set here are available to "ALL" instances

}

Calendar.prototype = {
constructor: Calendar,
getDateTest: function() {
return "date test";
},
getDateTest2: function() {
return "date test";
}
};

最佳答案

是的,这是可能的。在 yui 中他们使用

YAHOO.lang.augementObject(Calendar,{/* Properties go here*/});

但是如果你不使用 YUI,为了简化你可以这样做

Calendar.MyStaticVar = {/* Any variables you want*/}

这将允许您定义一个名为 MyStaticVar 的静态变量,在本例中,它是一个对象,但它可以是一个字符串、一个数字,任何您想要的。然后使用它,你所要做的就是去

Calendar.MyStaticVar

YUI 中的 Augment 对象非常好,因为你可以说

YAHOO.lang.augementObject(Calendar,{
StaticVar1:'somevalue',
StaticVar2:{/*Object value*/},
StaticVar3:393,
SomeStaticFunction:function() {}
});

相对于

Calendar.StaticVar1 = 'somevalue';
Calendar.StaticVar2 = {/*Object value*/};
Calendar.StaticVar3 = 393;
Calendar.SomeStaticFunction = function() {};

关于javascript - 创建一个 javascript 对象来模拟类和静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1928017/

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