函式呼叫
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...