函式作為物件的屬性時,稱為方法。此時函式(即方法)中的this對應是該物件。
var myobject =
};// 方法呼叫模式,this對應的是myobject物件
myobject.func(); //3
也可以寫成如下格式:
var myobject = ;
myobject.func = function()
// 方法呼叫模式
myobject.func(); //3
上面,this對應的是myobject物件。
函式呼叫模式即通常的函式呼叫,屬於全域性性呼叫,此時this對應的是全域性物件,即window物件。
var add =function(a, b)上面也可以寫成// 函式呼叫模式
add(
3,4); //
7
window.add =function(a, b)下面來看看下面的測試題,以檢驗你是否了解了this。 答案會是6嗎?仔細想想。// 函式呼叫模式
add(3,4); //7
答案為6的程式應該是這樣的:
(1)處this在firefox除錯如下:(方法呼叫模式處)
(2)處this在firefox除錯如下:(函式呼叫模式處)
若在函式前面通過new 來呼叫,其實是生成一新物件,this自然指向該新物件。
var add =function(a, b)obj為一物件:// 構造器呼叫模式
var obj = new add(3, 4);
對於構造器呼叫模式,如果函式返回值不是乙個物件,則返回該新物件,即this。
this對應全域性變數,即window物件
this對應為myobject物件
// call 模式
var p2 = func.call(o, "趙曉虎", 19, "男");
js種函式呼叫的四種方式
函式呼叫 this指向 window 返回值 由return值決定,如果沒有return語句就表示沒有返回值 案例1 function f1 f1 window 案例2 function f2 var f2n f2 f2n this window 這也是一次函式呼叫模式 案例3 functioon ...
函式的四種呼叫方式以及this指向
在es6之前,我們要看乙個函式內部的this到底是指向誰,那麼就要通過觀察函式是如何呼叫的,下面是函式的四種呼叫方式 函式呼叫 示例1 var age 18 var p var s1 p.say s1 函式呼叫由示例1可以知道函式呼叫方式的時候this是指向window。方法呼叫 示例2 var a...
js高階 函式呼叫的四種方式
function fn 1 直接呼叫 fn 2 當成構造函式呼叫 new fn 建構函式規範寫法為首字母大寫,此處只為說明問題 附加說明 建構函式的返回值情況 1 建構函式沒有手動新增返回值,返回建構函式的例項 2 建構函式返回基本資料型別的值,返回的還是建構函式的例項 3 建構函式返回物件型別的值...