js種函式呼叫的四種方式

2022-09-11 18:33:17 字數 1978 閱讀 2387

函式呼叫

this指向:window

返回值  :由return值決定,如果沒有return語句就表示沒有返回值

案例1:

function f1()

f1(); //window

案例2:

function f2()

}var f2n = f2();

f2n(); //this-->window 這也是一次函式呼叫模式

案例3:

functioon f3()

}f3();

方法呼叫

this指向:該方法的呼叫者

返回值  :由return語句決定

**1:

var obj=

};obj.say();//方法呼叫模式

**2:

function f1()

var obj2=;

obj2.s1();//方法呼叫模式——>this:obj2

**3:

var obj3=

};var obj4=;

obj4.s2();//方法呼叫模式:this——>obj4

function f5()

var a1=f5();//undefeind

var a2=f5;//a2是乙個函式

構造函式呼叫

this指向:當前建構函式建立的物件

返回值  :   a、沒有手動新增返回值,預設返回this

b、return了乙個基本資料型別(數字、布林值、null、undefined),最終返回this

c、return了乙個複雜資料型別(物件),最終返回該物件

**1:

function person()

//構造函式呼叫模式:

var p1 = new person(); //列印出該例項 person

**2;

function p2()

var p2 = new p2();

console.log(p2); //p2

**3:

function p3() ;

}var p3 = new p3();

console.log(p3); //object {}

console.log(p3.age);//undefined

**4:

function p4()

var p4 = new p4();

console.log(p4);//[1, 3, 5]

console.log(p4.age);//undefined

上下文呼叫

this指向:   a、傳遞乙個null/undefined------------------->window

b、傳遞乙個數字、字串、布林值------->對應的基本包裝型別的物件

c、傳遞乙個物件------------------------------->指向該物件

返回值  :由return語句決定

function f1()

//上下文模式

f1.call(null); //window

f1.call(undefined); //window

f1.call(1); //number的例項

f1.call("abc"); //string的例項

f1.call(true); //boolean的例項

var s1="abc"; //**內部建立了字串所對應的string建構函式的例項

//

//**執行完畢之後,就會把這個例項給銷毀

console.log(s1.length); //3

console.log(s1[0]); //"a"

js高階 函式呼叫的四種方式

function fn 1 直接呼叫 fn 2 當成構造函式呼叫 new fn 建構函式規範寫法為首字母大寫,此處只為說明問題 附加說明 建構函式的返回值情況 1 建構函式沒有手動新增返回值,返回建構函式的例項 2 建構函式返回基本資料型別的值,返回的還是建構函式的例項 3 建構函式返回物件型別的值...

js中函式呼叫的四種方式

每種方式的不同在於this的指向 funtion func a,b func 1,2 以上的函式是屬於全域性物件的函式,在html中此函式是屬於html全域性物件的,在window中此函式是屬於window全域性物件的。因此,在瀏覽器中,window.func func 以上的函式中this指向全域...

函式的四種呼叫方式

函式作為物件的屬性時,稱為方法。此時函式 即方法 中的this對應是該物件。var myobject 方法呼叫模式,this對應的是myobject物件 myobject.func 3 也可以寫成如下格式 var myobject myobject.func function 方法呼叫模式 myob...