好奇心から、そして私が心に留めている小さな実験を行うために、作成されたオブジェクトのタイプを変更することは可能ですか?
タイプを変更することで、次のように、オブジェクトを instanceof 演算子に応答させることを意味します。
(ご覧のとおり、コンストラクターを変更してみましたが、うまくいきませんでした)
var MyConstructor = function() { this.name = 'no name' };
undefined
var myInstance = { name: 'some name' }
undefined
myInstance instanceof Object
true
myInstance instanceof MyConstructor
false
myInstance.constructor
function Object() { [native code] }
myInstance.constructor = MyConstructor
function () { this.name = 'no name' }
myInstance instanceof Object
true
myInstance instanceof MyConstructor
false
new MyConstructor() で新しいオブジェクトを作成し、そこからすべてのプロパティを削除してから、myInstance からすべてのプロパティをコピーできると思いますが、もっと簡単な方法があるかどうか疑問に思っていました...
- アップデート -
プロパティの存在は知ってい__proto__
ますが、ほとんどのブラウザーで実装されているイベントが標準の一部ではないことを知っているため、事前に破棄しました。