Eyelidlessnessは間違っています。can't reassign the prototypes of intrinsic typesはObject、Numberなどです。新しいプロパティのみを追加できます。あなたがあなた自身のオブジェクトを使用している場合
> Number.prototype
-> Number
> Number.prototype = {} // Reassignment fails
-> Object
> Number.prototype
-> Number
> Number.prototype.objSayHello = 'hi' // Appending succeeds
-> 'hi'
> n = new Number(); n.objSayHello
-> 'hi'
、その後、あなたが更新またはプロトタイプを再割り当てすることができます(注:プロトタイプを再割り当てするだけではなく、既存のものを新しいオブジェクトに影響を与えます)。
intrisicプロトタイプを変更しないでください!これは見つからない副作用を引き起こす可能性があるため、これは「悪いこと」です。あなたは新しいプロパティを持つ基本的なタイプが必要な場合は、基本的なオブジェクトを指しているプロトタイプを使用して新しいオブジェクトを作成:
NewObject = function() {};
NewObject.prototype = Object.prototype;
NewObject.prototype.value = 123;
を今、あなたは、独自のプロトタイプ(例えば、両方からプロパティを継承する新しいオブジェクトを作成するコンストラクタを持っています'value')とObjectプロトタイプ( 'toString'、 'hasOwnProperty' ...)があります。