是否有任何内置方法可以将JavaScript对象的属性更改为某个值?

时间:2015-03-26 18:13:04

标签: javascript object

我想将JavaScript对象的所有属性值更改为某个值(在本例中为false)。我知道如何通过单独更改所有这些(示例A)或循环(示例B)来完成此操作。我想知道是否还有其他内置方法可以做到这一点,推荐的方法是什么(主要是速度方面还是其他任何副作用)?

伪代码:

// Example object
Settings = function() {
    this.A = false;
    this.B = false;
    this.C = false;
    // more settings...
}

// Example A - currently working
updateSettingsExampleA = function(settings) {
    // Settings' properties may not be be false when called
    settings.A = false;
    settings.B = false;
    settings.C = false;
    while (!(settings.A && settings.B && settings.C) && endingCondition) {
        // code for altering settings
    }
}

// Example B - currently working
updateSettingsExampleB = function(settings) {
    // Settings' properties may not be be false when called
    for (var property in settings) {
        settings[property] = false;
    }
    while (!(settings.A && settings.B && settings.C) && endingCondition) {
        // code for altering settings
    }
}

// possible other built in method
updateSettingsGoal = function() {
    this.* = false; // <-- statement to change all values to false
    while (!(this.A && this.B && this.C) && endingCondition) {
        // code for altering settings
    }
}

1 个答案:

答案 0 :(得分:2)

不,没有这样的内置方法。如果您想“将所有属性值更改为false ”,请使用循环执行此操作。你的例子B完全没问题。

我不建议展开循环(示例A),除非它不是“所有属性”,或者您需要此代码段的绝对最大速度。但这是微观优化,它不会使你的代码变得更好。