2019-9-30 seo達人
使用function關鍵字定義函數
函數聲明會被提升(Hoisting),將聲明移動到當前作用域頂端的默認行為。
參數:
如果函數調用的參數太多(超過聲明),則可以使用函數的內置對象arguments
arguments.length 會返回函數被調用時收到的參數數目
arguments[index]可以得到相應的參數
傳遞對象的時候是使用引用來傳遞的,如果函數修改了對象屬性,則原始對象也改變了。
調用:
以函數形式調用函數:(這種方式調用默認的是全局對象調用)
function myFunction(a, b) {
return a * b;
}
myFunction(10, 2);
作為方法來調用函數:(這種方式調用屬于函數的擁有者myObject)
var myObject = {
firstName:"Bill",
lastName: "Gates",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
myObject.fullName();
通過函數構造器來調用函數:(如果函數調用的前面是 new 關鍵字,那么這是一個構造函數調用)
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() 方法是預定義的 JavaScript 方法。
它可以用來調用所有者對象作為參數的方法。
通過 call(),您能夠使用屬于另一個對象的方法。
如:
person.fullName.call(person1)// person1來調用person的fullName方法
call()可以帶參數,參數對應按順序的傳給方法
person2.fullName.call(person1,"Seattle", "USA")
apply()方法和call()方法類似
區別在于接收參數的方式不一樣。
call(obj,"x","y") 方法分別接受參數
apply(obj,["x","y"]) 方法接收數組形式的參數
箭頭函數:(ES6)
箭頭函數不需要function關鍵字、return關鍵字和大括號
var x = function(x, y) {
return x y;
}
var x = (x, y) => x y;
兩個的作用相同。
箭頭函數沒有自己的this、如果函數是單個語句,則只能省略 return 關鍵字和大括號
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務。