4

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それらのプロパティが実際にプロトタイプで見つかったメソッドである場合、オブジェクトからプロパティを取得することはできません。

オブジェクトにこれらのメソッドを使用したくありません。

4

1 に答える 1

5

を呼び出すと、プロパティをまったく持たないオブジェクトを作成できますObject.create(null)

その後、それを関数の として設定できますprototype
(デフォルトのプロトタイプの代わりに、Object.create(Object.prototype).

于 2013-05-29T19:01:51.313 に答える