2017-03-16 77 views
1

我想加載一個JavaScript文件作爲特定任務的腳本,它應該只能通過我定義的特定功能訪問。我該如何運行有限功能訪問的javascript代碼

我不希望編寫代碼的人訪問全局對象,如process或某些全局函數。

我只希望用戶使用我爲他們準備的函數或對象,它應該允許他們定義他們自己的函數和變量,而其他的則不允許。

有一些包可以做到嗎?

例如:

process; // should be undefined 
getProcessInfo(); // the function that I prepared for them 

var process = 0; // should be ok 

回答

1

您可以使用JavaScript的顯露的模塊模式類似如下:

var Exposer = (function() { 
 
    var privateVariable = 10; 
 

 
    var privateMethod = function() { 
 
    console.log('Inside a private method!'); 
 
    privateVariable++; 
 
    } 
 

 
    var methodToExpose = function() { 
 
    console.log('This is a method I want to expose!'); 
 
    } 
 

 
    var otherMethodIWantToExpose = function() { 
 
    privateMethod(); 
 
    } 
 

 
    return { 
 
     first: methodToExpose, 
 
     second: otherMethodIWantToExpose 
 
    }; 
 
})(); 
 

 
Exposer.first();  // Output: This is a method I want to expose! 
 
Exposer.second();  // Output: Inside a private method! 
 
Exposer.methodToExpose; // undefined

+0

的問題是如何保持代碼訪問的node.js全球像'process'這樣的對象。這個建議根本不能解決這個問題。 – jfriend00

相關問題