在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
属性。
我不想在我的对象上使用这些方法。
答案 0 :(得分:5)
您可以通过调用Object.create(null)
来创建一个完全没有属性的对象。
然后,您可以将其设置为函数prototype
(而不是默认原型,以Object.create(Object.prototype)
开头。