函式的四種呼叫方式

2021-07-10 10:01:52 字數 1164 閱讀 5249

函式作為物件的屬性時,稱為方法。此時函式(即方法)中的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) 

// 函式呼叫模式

add(3,4); //7

下面來看看下面的測試題,以檢驗你是否了解了this。

答案會是6嗎?仔細想想。

答案為6的程式應該是這樣的:

(1)處this在firefox除錯如下:(方法呼叫模式處)

(2)處this在firefox除錯如下:(函式呼叫模式處)

若在函式前面通過new 來呼叫,其實是生成一新物件,this自然指向該新物件。

var add =function(a, b) 

// 構造器呼叫模式

var obj = new add(3, 4);

obj為一物件:

對於構造器呼叫模式,如果函式返回值不是乙個物件,則返回該新物件,即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 建構函式返回物件型別的值...