首頁 > web前端 > js教程 > 主體

javascript如何使用函數和傳回值用法實例詳解

伊谢尔伦
發布: 2018-05-19 15:27:11
原創
2951 人瀏覽過

在JavaScript中,函數可以 
◆ 被賦值給一個變數 
◆ 被賦值為物件的屬性 
◆ 作為參數被傳入別的函數 
◆◆ 作為函數的結果被傳回

賦值給一個變數: 

//声明一个函数,接受两个参数,返回其和 
function add(x, y){ 
return x + y; 
} 
var a = 0; 
a = add;//将函数赋值给一个变量 
var b = a(2, 3);//调用这个新的函数a 
print(b);
登入後複製

這段程式碼會印出”5”,因為賦值之後,變數a引用函數add,也就是說,a的值是一個函數物件(一個可執行程式碼區塊),因此可以使用a(2, 3)這樣的語句來進行求和操作。
賦值為物件的屬性: 

var obj = { 
id : "obj1" 
} 
obj.func = add;//赋值为obj对象的属性 
obj.func(2, 3);//返回5
登入後複製

事實上,這個例子與上個例子的本質上是一樣的,第一個例子中的a變量,事實上是全域物件(如果在客戶端環境中,表示為window物件)的一個屬性。而第二個例子則為obj對象,由於我們很少直接的引用全域對象,就分開來描述。
作為參數傳遞: 

//高级打印函数的第二个版本 
function adPrint2(str, handler){ 
print(handler(str)); 
} 
/将字符串转换为大写形式,并返回 
function up(str){ 
return str.toUpperCase(); 
} 

//将字符串转换为小写形式,并返回 
function low(str){ 
return str.toLowerCase(); 
} 

adPrint2("Hello, world", up); 
adPrint2("Hello, world", low);
登入後複製

執行此片段,可以得到這樣的結果: 

HELLO, WORLD 
hello, world
登入後複製

應該注意到,函數adPrint2的第二個參數,事實上是一個函數,將這個處理函數作為參數傳入,在adPrint2的內部,仍然可以呼叫這個函數,這個特點在很多地方都是有用的,特別是,當我們想要處理一些對象,但又不確定以何種形式來處理,則完全可以將「處理方式」作為一個抽象的粒度來進行包裝(即函數)。
作為函數的回傳值: 
先來看一個最簡單的例子: 

function currying(){ 
return function(){ 
print("curring"); 
} 
}
登入後複製

函數currying傳回一個匿名函數,這個匿名函數會列印」curring”,簡單的調用currying()會得到下面的結果:

function (){ 
print("curring"); 
}
登入後複製

如果要呼叫currying回傳的這個匿名函數,需要這樣: 
currying()(); 
第一個括號運算,表示呼叫currying本身,此時傳回值為函數,第二個括號運算子呼叫這個回傳值,則會得到這樣的結果: 
currying

以上是javascript如何使用函數和傳回值用法實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!