我该如何运行有限功能访问的javascript代码

问题描述:

我想加载一个JavaScript文件作为特定任务的脚本,它应该只能通过我定义的特定功能访问。我该如何运行有限功能访问的javascript代码

我不希望编写代码的人访问全局对象,如process或某些全局函数。

我只希望用户使用我为他们准备的函数或对象,它应该允许他们定义他们自己的函数和变量,而其他的则不允许。

有一些包可以做到吗?

例如:

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

var process = 0; // should be ok 

您可以使用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