使用1和0代替Object.defineProperty的true false

问题描述

我在网络上看到过这样的代码(简体):

    var abc = {}; 
    Object.defineProperty(abc,'example',{
        enumerable: 0,configurable: 1,writable: 1,value: function() {}
    });

它们使用truefalse代替10。我更喜欢这种方法的简单性,但是我需要知道:

此定义格式是否在浏览器中不规范且不一致,应该避免使用,还是在生产级代码中使用安全?

解决方法

在您编写的代码中看起来更短,但在许多情况下使用布尔值实际上更快。 你得写

if(writable===1){
...
}

代替

if(writable){
...
}

与问号的使用相同,在某些情况下我发现它确实很棒:

writable? doThisIfTrue : doThisIfFalse

这是我在网站上的第一个答案,我是一名初级开发人员,希望对您有所帮助!