既存の関数とオブジェクトは次のとおりです。
コードをコピー コードは次のとおりです。
var doubling=function(x ){
return x*2;
};
var obj={
val:100,
関数呼び出しモードを使用する場合、これはグローバル オブジェクトにバインドされています。この状況は、オブジェクトのプロパティとメソッドが初期化されるときにも反映されることがあります。次に、ojb に次の行を追加します:
コードは次のとおりです: var obj={val:100,
prop:function(){var that=this;
document.write('name: ' that '; type: ' typeof(that) '
'); >return doubling (that.val);
}(),
get_prop:function(){
var that=this;
document.write('name: ' that '; type: ' typeof(that ) '
');
return doubling(that.val)
},
};
prop は、が実行されると、関数呼び出しモードでオブジェクトの val 値の doubling() 操作の結果を取得することが期待されます。get_prop はメソッド呼び出しモードです。
スクリプトがロードされると、obj の属性 prop が初期化されるときに、ステートメント「name: [object Window]; type: object」が出力されます。obj.get_prop() を使用すると、ステートメント「name: [object」が出力されます。オブジェクト]; タイプ: オブジェクト」が出力されます。前者は関数本体の「this」がグローバル変数 window であることを示し、後者は予想通り obj そのものです。
属性 prop とメソッド get_prop() の戻り値を確認できます。前者は window オブジェクトを乗算して NaN を返し、後者は 200 に等しくなります。