引用型別 Function型別

2021-09-02 23:36:59 字數 1693 閱讀 4782

1. function型別:函式是物件,是function型別的例項,有屬性和方法。函式是物件,函式名是指向函式物件的指標

2. 定義函式的方法:

① 函式宣告語法定義:

function sum(num1, num2)

而對於函式表示式定義函式,解析器直到執行到他所在的**行,才會被真正解析執行。

alert(sum(10,10));   //出錯

var sum =  function (num1, num2);

5. 函式內部屬性:

① arguments物件:類陣列物件,包含著傳入函式中所有的引數。(該物件有乙個callee屬性,該屬性是乙個指標,指向擁有這個arguments物件的函式

function factorial(num) else

}② this物件:函式據以執行的環境物件(在全域性作用域中呼叫函式時,this物件引用的就是window)

window.color = "red";

var o = ;

function saycolor()

saycolor(); //"red"

o.saycolor = saycolor;

o.saycolor(); //"blue

③ caller屬性:該屬性中儲存著呼叫當前函式的函式的引用。在全域性作用域中呼叫當前函式,caller的值為null

function outer()

function callsum(num1, num2)。

alert(callsum(10,10)); //20

注意:這兩個函式最大的作用是擴大作用域。好處是物件不需要和方法有任何的耦合關係。

window.color = "red";

var o = ;

function saycolor()

saycolor();   //red

saycolor.call(this);   //red

saycolor.call(window);   //red

saycolor.call(o);   //blue,這裡o就是this,所以實際上是o.color

如果不使用call,就需要如下做法:

var o = ;

function saycolor()

saycolor(); //"red"

o.saycolor = saycolor; //給o物件新增saycolor方法

o.saycolor(); //"blue"     //再呼叫

bind():建立乙個函式的例項,該bind函式的引數設定了this。

window.color = "red";

var o = ;

function saycolor(){

alert(this.color);

var objectsaycolor = saycolor.bind(o); //這裡建立了objectsaycolor函式的例項,o即為this.color裡面的this

objectsaycolor(); //blue  

7. 函式繼承的tostring()、tolocalestring()、valueof()都返回函式的**

《JS高程》 Function引用型別

答 三種定義方法 答 兩個區別 答 函式名實際是乙個指向函式物件的指標,不會與某個函式繫結。答 函式沒有過載。宣告了兩個同名的函式時,後面的函式將會覆蓋前面的函式,原理為 函式名只是乙個指向函式物件的指標。答 函式可以作為值來使用,不僅可以將乙個函式傳遞給另乙個函式,還可以將乙個函式作為另乙個函式的...

js基礎 function型別

1 函式宣告方式 1 普通宣告方式 function box num1,num2 2 使用變數初始化函式 var box function num1,num2 3 使用function建構函式 var box new function num1 num2 return num1 num2 不推薦 2...

值型別 引用型別

在 c 中有兩種型別的資料,一種是值型別資料,一種是引用型別資料。在編碼的時候區分這兩種型別資料,可以避免一些細小的編碼錯誤。首先說說什麼型別是值型別,例如 int float bool之類的基礎型別,以及用struct定義的型別,如 datetime。除此外,如string,陣列,以及用class...