2017-04-19 59 views
-1

以下代碼在大多數情況下工作正常,除了當我試圖從私有函數返回一個值。如何在不暴露私人功能的情況下從私人獲取返回值?嵌套的私有函數的返回值

var _private = function() {  
    return 'hello' ;  
}, 
public = function() { 
    _private(); 
}; 
+2

'回報_private();'' –

+1

回報_private();' – gurvinder372

+0

你在'_private()'函數做什麼?顯然這是僞代碼。 – Satpal

回答

1

使用此

var _private = function() {  
    return 'hello' ;  
}, 
public = function() { 
    return _private(); 
}; 
+0

羅裏打敗你,但這確實是正確的答案。 – master00

1

您必須添加return聲明 return _private()

var _private = function() {  
 
    return 'hello' ;  
 
}, 
 
public = function() { 
 
    return _private(); 
 
}; 
 

 
console.log(public()); 
 
console.log(_private());

注:你的私人功能不是很私密。正如你在上面的代碼片段中看到的那樣。該功能是可訪問的

1

JavaScript本身沒有私有函數,您將需要使用閉包爲您創建一個可私人訪問的作用域_private函數。這是一個簡單的例子。

var public = (function(){ 
 

 
    var _private = function() {  
 
    return 'hello' ;  
 
    } 
 
    
 
    return function() { 
 
    return _private(); 
 
    } 
 
    
 
})() 
 

 
console.log(
 
    public(), 
 
    typeof _private === 'undefined' 
 
)