var a = "the letter a";
var obj = {};
obj.brovo = "the letter b";
obj.charlie = "the letter c";
if (!obj.alpha) obj.alpha = a;
由于我希望在代码中的不同点使用它并且将多次使用它,因此我希望将其用作以下内容:
isNotSet(obj.alpha, a);
我希望这等于obj.alpha = a;
我从以下函数开始:
function isNotSet (arg1, arg2) {
if (!arg1) arg1 = arg2;
return arg1;
}
最佳答案
解决方案实际上只是一句简单的话:
obj.alpha = obj.alpha || a;
如果你确实需要一个函数,你可以包装它:
function isNotSet(obj, arg1, arg2) {
obj[arg1] = obj[arg1] || arg2;
}
但是,您应该意识到,如果 obj[arg1]
设置为 false
(或任何其他虚假的值),则此解决方案和您建议的解决方案都将覆盖该值值)。
如果您想正确处理这些值,最简单的方法是:
function isNotSet(obj, arg1, arg2) {
if(typeof obj[arg1] !== "undefined" && obj[arg1] !== null) { return; }
obj[arg1] = arg2;
}
关于javascript - 如何使用函数向 JavaScript 对象添加属性名称和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34098236/