我该如何运行有限功能访问的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
的问题是如何保持代码访问的node.js全球像'process'这样的对象。这个建议根本不能解决这个问题。 – jfriend00