function函數
一:對function函數基礎理解:
函數實際上是對象,每個函數實際上都是 function類型的實例。而且與其他引用類型一樣具有屬性和方法。函數名實際上是一個指向內存堆中某個函數對象的指針。
定義函數的方式
1.函數聲明:
function sum(num1,num2){
return num1+num2;
}
2.函數表達式:
var sum=function(num1,num2){
return num1+num2;
};
定義了一個變量sum並將其初始化為一個函數,註意到function關鍵字後面並沒有函數名,這是因為在使用函數表達式定義函數,沒必要使用函數名,通過變量 sum即可引用函數。還要註意函數末尾有個分號,就像聲明其他變量一樣。
Arrow Function(箭頭函數):
箭頭函數,顧名思義就是用箭頭(=>來定義的函數,不會用到關鍵字‘function’),例如:
let sum = (a, b)=> {return a + b;}
效果等同於:
var sum = function(a, b){return a + b;}
但是,事實上上面兩個function存在很多不同。
箭頭函數的定義形式有很多種,具體的有:
1: 什麽情況下都可以型
let sum = (a, b)=>{return a + b;}
這種是最常用,最通用的形式。
2: 只有一個參數型
let self = num1 => {return num1;}
可以看到相對第一種定義的區別是:沒有用()包圍參數. 這種形式只可以在這種情況下用。
3: 沒有參數型
let functionA = ()=> {return ‘hehe‘;}
當沒有參數時,必須要有‘()‘。
4: 兩個參數及其以上型
let sum = (a, b) => {return a + b;}
當有兩個及其以上的參數時,也必須要用‘()’把參數括起來。
5:沒有return&&沒有{}
let sum = (a, b) => a + b;
你可以同時不給return關鍵字和{},效果`等同`於上面的第4種情況
6: 沒有return && 有{}
let sum = (a, b)=> {a + b;}
這種情況不等於第5種,這種情況下`‘a+b‘`並不會作為這個函數的返回值,如果你調用這個函數,得到的結果`‘undefined’`
7: 有return && 沒有{}
let sum = (a, b)=> return a + b;
(註明,以上的第5,6,7點針對的是函數方法體的部分,不論函數參數是幾個,結果沒有區別;同樣的,第2,3,4點針對的是函數的參數部分,不論函數的方法體怎麽寫,對結果沒有影響。)
constructor構造函數屬性:
定義和用法
constructor 屬性返回對創建此對象的數組函數的引用。
語法
object.constructor
例子 1
我們將展示如何使用 constructor 屬性:
<script type="text/javascript"> var test=new Array(); if (test.constructor==Array
) { document.write("This is an Array"); } if (test.constructor==Boolean
) { document.write("This is a Boolean"); } if (test.constructor==Date
) { document.write("This is a Date"); } if (test.constructor==String
) { document.write("This is a String"); } </script>
輸出:
This is an Array
例子 2
我們將展示如何使用 constructor 屬性:
<script type="text/javascript">
function employee(name,job,born)
{
this.name=name;
this.job=job;
this.born=born;
}
var bill=new employee("Bill Gates","Engineer",1985);
document.write(bill.constructor
);
</script>
輸出:
function employee(name, job, born) {this.name = name; this.job = job; this.born = born;}
function函數