ES5添加数量的方法来Object,这似乎打破的JavaScript的语义的一致性.
举例来说,在此之前的扩展,JavaScript API的身边总是围绕operarting 对对象本身;
var arrayLength = [].length;
var firstPosInString = "foo".indexOf("o");
Run Code Online (Sandbox Code Playgroud)
...新的Object方法就像;
var obj = { };
Object.defineProperty(obj, {
value: 'a',
writable: false
});
Run Code Online (Sandbox Code Playgroud)
......当以下内容更加符合时:
var obj = { };
obj.defineProperty({
value: 'a',
writable: false
});
Run Code Online (Sandbox Code Playgroud)
任何人都可以冷静我的好奇心,为什么会这样?是否有任何代码片段会破坏?标准委员会是否就他们选择这种方法的原因进行了公开讨论?