gpt4 book ai didi

带条件的 Javascript 对象属性

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

如何在 JavaScript 中创建具有属性的对象?

类似于:

function translate() {
this.city = function () {
if (language == "English") {
return "City";
} else {
return "Ville";
}
}
}

当我尝试使用它时:

translate.city

它返回未定义...

最佳答案

您需要创建对象的实例:

var myTranslate = new translate();
var city = myTranslate.city();

或者,您可以这样做:

var translate = {
city: function () {
if (language == "English") {
return "City";
} else {
return "Ville";
}
}
};
var city = translate.city();

如果您希望能够访问 city 属性而不将其作为函数调用,并且您使用的是 ES5 或更高版本,则可以定义一个 getter 方法:

var translate = {};
Object.defineProperty(translate, "city", {
get: function () {
if (language == "English") {
return "City";
} else {
return "Ville";
}
}
});
console.log(translate.city);

或者定义 getter 的另一种方式(也需要 ES5):

var translate = {
get city() {
if (language == "English") {
return "City";
} else {
return "Ville";
}
}
};
console.log(translate.city);

还有另一种变体(由 @vol7ron 提供),它确定创建对象时的 city 值:

function Translate() {
this.city = (function () {
if (typeof language !== 'undefined' && language == "English") {
return "City";
} else {
return "Ville";
}
}());
}

var translate = new Translate();
translate.city; // "Ville"

关于带条件的 Javascript 对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25271705/

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