2013-05-29 57 views
4

在Ruby中,爲了獲得絕對最乾淨的繼承鏈,您可以繼承BasicObject而不是Object。通過這種方式,您不需要使用您不需要的方法的對象(方法是Object.prototype的一部分)。Javascript是否具有與Ruby類似的BasicObject?

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特性,如果這些特性實際上是在原型上找到的方法。

我不希望這些方法在我的對象上。

回答

5

您可以通過調用Object.create(null)來創建沒有任何屬性的對象。

然後,您可以將其設置爲函數的prototype
(而不是默認原型,其開始爲Object.create(Object.prototype)

相關問題