ES5 增加了一些方法,似乎Object
打破了 JavaScript 的语义一致性。
例如,在此扩展之前,JavaScript API 始终围绕对对象本身进行操作;
var arrayLength = [].length;
var firstPosInString = "foo".indexOf("o");
...就像新的 Object 方法一样;
var obj = { };
Object.defineProperty(obj, {
value: 'a',
writable: false
});
...当以下内容更加符合时:
var obj = { };
obj.defineProperty({
value: 'a',
writable: false
});
谁能冷却我的好奇心,为什么会这样?是否有任何代码片段会破坏?标准委员会是否就他们为什么选择这种方法进行了公开讨论?