[JS] constructorで生成元オブジェクトを判別
2008年9月24日
JavaScriptで、
あるオブジェクトのインスタンスから生成元オブジェクトを知ることは出来る?
・・・というのを(イマサラ)思って調べたらハッケソした。
あるオブジェクトのインスタンスから生成元オブジェクトを知ることは出来る?
・・・というのを(イマサラ)思って調べたらハッケソした。
こんな感じに
// Not native object.
var Person = function(name){
this._name = name;
};
Person._name = "Person!";
var p = new Person("kj");
alert(p._name); // -> "kj"
alert(p.constructor._name); // -> "Person!"
// Native object.
var s = "hogehoge";
alert(s.constructor === String); // -> true
alert(s.constructor === Object); // -> false
Windows の IE6 / FireFox2 / Google Chrome で動作確認しました。
IEには無さそうだとドキドキしてたけど、ありました。ひゃっほう!
IEには無さそうだとドキドキしてたけど、ありました。ひゃっほう!