__parent__に初めて触れてみますた
サイ本のp.206に載っている__parent__プロパティについて。
名前からしてもわかるように、
継承チェーンのkeyとなる__parent__なんですが、
p.207の例(__parent__に親オブジェクトと異なるオブジェクトを代入)
を忠実に実行しても、記載通りの結果になりませんでした。。
結局、(firefoxでは?) __parent__に代入できないという結論になったのですが。
この実験の中で、色々おもしろい結果が得られたので、少しご紹介。
例1:
var f1 = function temp () { var a = 1; alert(a); }; var f2 = function() { var b = 1; alert(b); } alert(f1.__parent__); //(1) alert(f1.__parent__.toSource()); //(2) alert(f2.__parent__); //(3) alert(f2.__parent__.toSource()); //(4)
とすると、
(1)の結果
[object Object]
(2)の結果
({temp: (function temp(){var a=1;alert(a);})})
また、
(3)の結果
[object Window]
(4)の結果
{}
わかったこと
var f1 = function temp ()
var f2 = function()
上の2つの書き方では、継承ツリーの構成が1段違って、
f1では、tempというプロパティをもったオブジェクトが__parent__入っているが、
f2では、__parent__にはWindowが直接入っている。
例2:(書きかけ)
javascriptの最適化について。(まだ十分理解できてない。。今日勉強!w)
id:amachang ありがとうございました! m(_ _)m