Javascript是否有类似于Ruby的BasicObject?

时间:2013-05-29 19:00:40

标签: javascript ruby

在Ruby中,为了获得绝对最干净的继承链,您可以继承BasicObject而不是Object。这样你就没有一个你不一定想要的方法的对象(属于Object.prototype的方法)。

JavaScript是否有类似的方法来定义基本对象?

function Person(name){
    this.name = name
}
var mac = new Person('Mac')
delete mac.toString        //does not work
delete mac.hasOwnProperty  //does not work

通过构造函数实例化对象后,如果这些属性实际上是在原型上找到的方法,则无法从对象中delete属性。

我不想在我的对象上使用这些方法。

1 个答案:

答案 0 :(得分:5)

您可以通过调用Object.create(null)来创建一个完全没有属性的对象。

然后,您可以将其设置为函数prototype (而不是默认原型,以Object.create(Object.prototype)开头。