希岛爱理av免费一区二区,成人性教育av免费网址,欧美7777,在线免费日韩片

十年專注于品牌網站建設 十余年專注于網站建設_小程序開發_APP開發,低調、敢創新、有情懷!
南昌百恒網絡微信公眾號 掃一掃關注
小程序
tel-icon全國服務熱線:400-680-9298,0791-88117053
掃一掃關注百恒網絡微信公眾號
掃一掃打開百恒網絡微信小程序

百恒網絡

南昌百恒網絡

ECMAScript Function類型

百恒網絡 2012-09-01 5255

說起來ECMAScript中什么最有意思,我想那莫過于函數了——而有意思的根源,則在于函數實際上是對象。每個函數都是Func tion類型的實例,而且都與其他引用類型一樣具有屬性和方法。由于函數是對象,因此函數名實際上也是一個指向函數對象的指針,不會與某個函數綁定。函數通常是使用函數聲明語法定義的,如下面的例子所示:

function sum (numl, num2) {

return numl+num2;

)

用函數表達式定義函數的方式幾乎相差無幾:

var sum = function(uml,nurn2){

return numl + num2;}

以上代碼定義了變量sum并將其初始化為一個函數。有讀者可能會注意到,function關鍵字后面沒有函數名。這是因為在使用函數表達式定義函數時,沒用必要使用函數名——通過變量sum即可以引用函數。另外,還要注意函數末尾有一個分號,就像聲明其他變量一樣。

最后一種定義函數的方式是使用Function構造函數。Function構造函數可以接收任意數量的參數,但最后數始終都被看成是函數體,而前面的參數則枚舉出了新函數的參數。來看下面的例子: var sum = new Function("numl","num2","return numl+ num2"); //南昌網站建設公司工程師不推薦

從技術角度講,這是一個函數表達式。但是,我們不推薦讀者使用這種方祛定義函數,因為這種語法會導致解析兩次代碼(第一次是解析常規ECMAScript代碼,第二次是解析傳人構造函數中的字符串)從而影響性能。不過,這種語法對于理解“函數是對象,函數名是指針”的概念倒是非常直觀的。

由于函數名僅僅是指向函數的指針,因此函數名與包含對象指針的其他變量沒有什么不同。換句話說,一個函數可能會有多個名字,如下面的例子所示:

funtction sum (numl,num2){

return numl + num2;

}

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

var anotherSum = sum;

alert(anotherSum(10,10)) //20

sum = null;

alert(anotherSum(10,10)) //20

以上代碼先定義了一個名為sum()的函數,用于求兩個值的和。然后,又聲明了變量anotherSum,并將其設置為與sum相等(將sum的值賦給anotherSum)。南昌網絡公司技術人員提醒需要注意的是,使用不帶圓括號的函數名是訪問函數指針,而非調用函數。此時,anotherSLun和sUIn就都指向了同一個函數,因此anotherSum()也可以被調用并返回結果。即使將sum設置為null、讓它與函數“斷絕關系”,但仍然可以正常調用anotherSum()。

希望對廣大站長或網站建設公司或從事企業網站建設的團隊有所幫助,如對此不太理解的,可以與南昌網絡公司百恒網絡技術部聯系。我們很高與廣大站長和網站建設公司技術人員分享我們的技術和經驗。


400-680-9298,0791-88117053
掃一掃關注百恒網絡微信公眾號
掃一掃打開百恒網絡小程序

歡迎您的光顧,我們將竭誠為您服務×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務 售后服務
 
售后服務 售后服務
 
備案專線 備案專線
 
×
主站蜘蛛池模板: 中西区| 喀喇沁旗| 西畴县| 祁东县| 兴城市| 中宁县| 尼勒克县| 唐山市| SHOW| 刚察县| 泽普县| 阳朔县| 垣曲县| 枝江市| 花莲市| 正定县| 兖州市| 门头沟区| 上林县| 化州市| 临潭县| 澄江县| 上杭县| 樟树市| 嘉鱼县| 张家界市| 连云港市| 遵义市| 剑阁县| 大洼县| 扎赉特旗| 浪卡子县| 望江县| 旅游| 东丰县| 二连浩特市| 普陀区| 沛县| 文水县| 资溪县| 聊城市|