2017-05-19 87 views
0

我不確定問題是否有正確的術語/詞彙,但我有代碼並應解釋問題。如何在函數的調用參數中使用值?

function canDrive(age,_yes,_no){ 
 
\t if (age >= 16) { 
 
    
 
    return _yes; 
 
} else { 
 

 
    return _no; 
 
} 
 
} 
 

 
function myFunction() { 
 
    document.getElementById("demo").innerHTML = canDrive(30,"YES WAY","NOWAY"); 
 
} 
 
myFunction();
<p>Can he drive <span id="demo"></span></p>

的問題是,調用在那裏我沒有訪問的結構是這樣的。這似乎是有效的

canDrive(30)("YES WAY","NOWAY"); 

我如何訪問YES WAY和NOWAY?在上述情況下?如果我能理解它是如何工作的,我可以解決一個大問題。謝謝

+0

你是什麼意思,訪問YES WAY和NOWAY? – Lixus

+0

我想你的代碼格式有誤,或者你理解函數的工作方式。您需要將參數傳遞給函數並將返回的值存儲到變量中。 – threeFatCat

回答

0

根據我對你的問題的理解,我認爲你正在尋找這樣的:

function canDrive(age) { 
 
    return function(yes, no) { 
 
    return age >= 16 ? yes : no; 
 
    } 
 
} 
 

 
console.log(canDrive(30)("YES WAY", "NOWAY"));

canDrive返回關閉返回的兩個提供的參數之一基於age

+0

所以是'(「YES WAY」,NOWAY「)'調用參數或者關閉? –

+0

'canDrive'是一個函數,'canDrive(30)'是一個帶參數'30'的函數調用並返回一個未命名的'Function '這個返回的函數在'canDrive'的'age'參數上'關閉',因此被稱爲'閉包',然後用兩個參數'「YES WAY」'和'「NOWAY''調用閉包。等同於:var closure = canDrive(30); console.log(closure(「YES WAY」,「NOWAY」));' –

0
var canDrive = function(age) { 
    return function(_yes, _no) { 
     if (age >= 16) 
      return _yes; 
     return _no; 
    } 
} 
相關問題