0

如果所有对象都继承自 Object 那么为什么我不能以这种方式使用 Object 的 defineProperty 方法呢?

var car = {name:"honda"}

car.defineProperty(car, "jow", {value:"jow"})

alert(car.jow)

谢谢你的洞察力,

4

1 回答 1

1

因为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

于 2013-11-02T18:15:19.073 回答