出現情況 | this 說明 | 範例程式 |
物件方法的呼叫 | 呼叫方法的物件 (Caller) |
var obj = new Object(); obj.id = "test"; obj.findThis = function(){ alert(this.id)}; obj.findThis(); // this is obj. |
Global Function 呼叫 | window, strict mode is undefined. Caller is window |
function test(){ alert(this); } test(); |
使用 new產生一個 instance | 就是 這個物件本身 | function test(){ alert(this) } var o = new test(); //this is o |
使用
Apply, Call呼叫函數 帶入第一個參數值改變 Context. |
被改變的 Context值 | function test(){ alert(this.id); } var m = {id: "m"}; var n = {id: "n"}; var o = {id: "o"}; o.fn = test; o.fn.apply(m); // this is m o.fn.call(n); // this is n |
我們可以說, this 物件重點在於 caller. caller代表著 context, 在大多數情況下也代表著 this.如果有缺的部分或是我有敘述錯誤的地方歡迎來信補述!
補充說明: [JavaScript][OO] this object memo
Reference
沒有留言:
張貼留言