JS基礎(chǔ)知識(shí)整理06-函數(shù)

2019-9-30    seo達(dá)人

使用function關(guān)鍵字定義函數(shù)

函數(shù)聲明會(huì)被提升(Hoisting),將聲明移動(dòng)到當(dāng)前作用域頂端的默認(rèn)行為。



參數(shù):

如果函數(shù)調(diào)用的參數(shù)太多(超過(guò)聲明),則可以使用函數(shù)的內(nèi)置對(duì)象arguments

arguments.length 會(huì)返回函數(shù)被調(diào)用時(shí)收到的參數(shù)數(shù)目

arguments[index]可以得到相應(yīng)的參數(shù)



傳遞對(duì)象的時(shí)候是使用引用來(lái)傳遞的,如果函數(shù)修改了對(duì)象屬性,則原始對(duì)象也改變了。





調(diào)用:

以函數(shù)形式調(diào)用函數(shù):(這種方式調(diào)用默認(rèn)的是全局對(duì)象調(diào)用)

function myFunction(a, b) {

return a * b;

}

myFunction(10, 2);



作為方法來(lái)調(diào)用函數(shù):(這種方式調(diào)用屬于函數(shù)的擁有者myObject)

var myObject = {

firstName:"Bill",

lastName: "Gates",

fullName: function () {

return this.firstName + " " + this.lastName;

}

}

myObject.fullName(); 



通過(guò)函數(shù)構(gòu)造器來(lái)調(diào)用函數(shù):(如果函數(shù)調(diào)用的前面是 new 關(guān)鍵字,那么這是一個(gè)構(gòu)造函數(shù)調(diào)用)

function myFunction(arg1, arg2) {

this.firstName = arg1;

this.lastName  = arg2;

}

var x = new myFunction("Bill", "Gates");

x.firstName; 



call()和apply()方法:

var person = {

fullName: function() {

return this.firstName + " " + this.lastName;

}

}

var person1 = {

firstName:"Bill",

lastName: "Gates",

}

var person2 = {

fullName: function(city, country) {

return this.firstName + " " + this.lastName + "," + city + "," + country;

}

}



call() 方法是預(yù)定義的 JavaScript 方法。

它可以用來(lái)調(diào)用所有者對(duì)象作為參數(shù)的方法。

通過(guò) call(),您能夠使用屬于另一個(gè)對(duì)象的方法。

如:

person.fullName.call(person1)// person1來(lái)調(diào)用person的fullName方法



call()可以帶參數(shù),參數(shù)對(duì)應(yīng)按順序的傳給方法

person2.fullName.call(person1,"Seattle", "USA")



apply()方法和call()方法類(lèi)似

區(qū)別在于接收參數(shù)的方式不一樣。

call(obj,"x","y") 方法分別接受參數(shù)

apply(obj,["x","y"]) 方法接收數(shù)組形式的參數(shù)





箭頭函數(shù):(ES6)

箭頭函數(shù)不需要function關(guān)鍵字、return關(guān)鍵字和大括號(hào)

var x = function(x, y) {

  return x y;

}



var x = (x, y) => x
y;

兩個(gè)的作用相同。



箭頭函數(shù)沒(méi)有自己的this、如果函數(shù)是單個(gè)語(yǔ)句,則只能省略 return 關(guān)鍵字和大括號(hào)

藍(lán)藍(lán)設(shè)計(jì)m.820esy.cn )是一家專(zhuān)注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì)  cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶(hù)體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)。

分享本文至:

日歷

鏈接

個(gè)人資料

存檔