- this 引用的是函式執行的環境物件
window.color = "red";
var o = {color:"blue"};
function sayColor(){
alert(this.color);
}
sayColor();//"red"
o.sayColor = sayColor;
o.sayColor();//"blue"
複製程式碼
- length:每個函式都包含兩個屬性:length和prototype,其中,length屬性表示函式希望接收的命名引數的個數(不是實際接收的)
function sayName(name){
alert(name);
}
function sum(num1, num2){
return num1 + num2;
}
function sayHi(){
alert("hi");
}
alert(sayName.length);//1
alert(sum.length);//2
alert(sayHi.length);//0
複製程式碼
- 每個函式都包含兩個非繼承而來的方法:apply()和call()。這兩個方法的用途都是在特定的作用域中呼叫函式,實際上等於設定函式體內this物件的值。
apply
- 第一引數為執行函式的作用域(物件),另一個是引數陣列,如Array例項或arguments物件
call
- 與apply的區別是:除了第一個都是函式作用域,其餘引數都必須逐個列舉出來
es5還定義了一個bind函式,這個方法會建立一個函式的例項,其this值會被繫結到傳給bind()函式的值。