「this」を使用すると、Google クロージャー コンパイラ ( http://closure-compiler.appspot.com/home ) がすべてのメソッド名を保持しているようです。または、公開モジュール パターンを使用する場合。メソッドが他の外部メソッドによって参照される可能性のあるオブジェクトにない場合にのみ、メソッドの名前を文字に変更するようです。(ユーティリティ) オブジェクトとそれを使用する匿名メソッドの両方をラップしようとしましたが、これは役に立たないようです。互いに共有される可能性のあるオブジェクト (および個別のスクリプト ファイル) を作成し、すべてのメソッド名を短縮するにはどうすればよいでしょうか?
私は SO に関するいくつかの投稿を読みましたが、これに対処するものは何も表示されません。外部変数との競合のために名前が変更されないものに関する投稿のみです。
var Utility = (function () {
this.isDefined = function (v) {
/// <summary>Checks to see if a variable is defined.</summary>
return typeof v !== 'undefined';
}
this.isObj = function (v) {
/// <summary>Checks to see if a variable is an object.</summary>
return typeof v === 'object';
}
...
})();
それから私はできるようにしたい:
(function(u) {
u.isDefined();
})(Utility);
私も試しました:
var Utility = (function () {
var utility = {};
utility.isDefined = function (v) {
/// <summary>Checks to see if a variable is defined.</summary>
return typeof v !== 'undefined';
}
utility.isObj = function (v) {
/// <summary>Checks to see if a variable is an object.</summary>
return typeof v === 'object';
}
return utility;
...