defineProperty方法是从Object继承的吗?

时间:2013-11-02 18:09:53

标签: javascript object prototype defineproperty

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

var car = {name:"honda"}

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

alert(car.jow)

感谢您的洞察力,

1 个答案:

答案 0 :(得分: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