如果所有对象都继承自 Object 那么为什么我不能以这种方式使用 Object 的 defineProperty 方法呢?
var car = {name:"honda"}
car.defineProperty(car, "jow", {value:"jow"})
alert(car.jow)
谢谢你的洞察力,
如果所有对象都继承自 Object 那么为什么我不能以这种方式使用 Object 的 defineProperty 方法呢?
var car = {name:"honda"}
car.defineProperty(car, "jow", {value:"jow"})
alert(car.jow)
谢谢你的洞察力,
因为defineProperty 不是Object 原型的属性,它是Object 本身的属性。
因此,要使用它,请执行以下操作:(来自文档,https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty )
var o = {}; // Creates a new object
// Example of an object property added with defineProperty with a data property descriptor
Object.defineProperty(o, "a", {value : 37,
writable : true,
enumerable : true,
configurable : true});
// 'a' property exists in the o object and its value is 37
另外,这里有一个很好的链接来解释原型和继承:http: //msdn.microsoft.com/en-us/magazine/ff852808.aspx