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ù)。
藍(lán)藍(lán)設(shè)計(jì)的小編 http://m.820esy.cn