2017-03-16 23 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

関連する問題