2017-08-29 30 views
-1

所以我有3個函數。 我想要實現的是從嵌套在父函數中的一個函數獲取值,並將其作爲第三個函數中的參數傳遞。 而且這可以通過更接近的方式來實現,以及如何實現? 非常感謝。如何從另一個函數中的函數中取值,作爲最終函數的參數

function foo() { 
    var rand = 10; 
    function bar() { 
     return { 
      age:rand; 
     } 
    } 
} 

function addValue(arg) { 
    console.log(bar()); 
} 
+1

這是沒有意義的,這是你的實際問題的人告訴你如何剝離原型(有可能你想要什麼,只是不好玩或直觀IMO)之前?嘗試並編寫您的實際確切問題。 – kabanus

+0

你的意思是「* ...用***封閉***」嗎?是。 – Bergi

+0

@kabanus代碼真的很長,我只是要求實際的例子,所以我可以將我的頭圍繞新的東西。另外,如果已經發布了代碼,那麼您應該查看所有代碼,並告訴我所有的錯誤,並且我需要將它寫入設計模式,其他部分是redandant。所以我真的不明白爲什麼你投下了我,並且抱有那種態度,太無禮了。 – NemanjaD

回答

1

電話如下

function foo() { 
    var rand = 10; 
    return function bar() { 
     return { 
      age:rand 
     } 
    }(); 
} 

function addValue(arg) { 
    console.log(foo()); 
    } 

編輯

function foo (func) { 
     var rand = 10; 
     function bar() { 
      return { 
      age:rand 
      } 
     }; 
    //Do your stuff 

    return eval(func+"()"); 
} 

function addValue(arg) { 
    console.log(foo("bar")); 
} 
+0

嗨,謝謝,可以實現沒有return語句,因爲我有另一個代碼塊執行foo()函數內? – NemanjaD

+0

將返回表達式放在'foo'的底部。 – evolutionxbox

+0

檢查編輯後的代碼,可以編寫更多的智能函數,並在父函數「foo」中將名稱作爲參數傳遞以獲取智力值 –

0

可以代替分配功能的父對象,並調用它。

function foo(){ 
 
\t var rand = 10; 
 
\t this.bar = function(){ 
 
\t \t return {age: rand}; 
 
\t } 
 
} 
 

 
var obj = new foo(); 
 
function addVal() { 
 
\t console.log(obj.bar()); 
 
} 
 

 
addVal();

相關問題