程式碼如下:
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+' that=this;
document.write('name: '+that+'name: '+that+; '+typeof(that)+'
');
return doublling(that.val);
}(),
get_prop:function(){
var that=this;
document.write('name: '+that+'; type: '+typeof(that)+'
');
return doublling(that.val);
},
};
prop使用一個被執行的匿名函數,期望取得所在物件的val值被函數呼叫模式的doubling()運算的結果;而get_prop為方法呼叫模式。
腳本載入的時候,obj的屬性prop初始化時,語句"name: [object Window]; type: object"輸出,使用obj.get_prop()時,語句"name: [object Object]; type: object"輸出。前者顯示函數體的"this"為全域變數window,後者如所期待的為obj本身。
可以檢查屬性prop和方法get_prop()的回傳值,前者對window物件進行乘法運算,回傳NaN,後者等於200。