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;}