私はIIFEの目的がグローバルスコープから外れることを理解しています。IIFEで宣言された変数はどこにありますか?
/* avoid */
// logger.js
angular
.module('app')
.factory('logger', logger);
// logger function is added as a global variable
function logger() { }
// storage.js
angular
.module('app')
.factory('storage', storage);
// storage function is added as a global variable
function storage() { }
、代わりにこの操作を行います:私はこれは私がコントローラにいくつかの時間を呼び出すためのストレージ機能が利用できるようにすると仮定してい
/**
* recommended
*
* no globals are left behind
*/
// logger.js
(function() {
'use strict';
angular
.module('app')
.factory('logger', logger);
function logger() { }
})();
// storage.js
(function() {
'use strict';
angular
.module('app')
.factory('storage', storage);
function storage() { }
})();
をアンギュラスタイルguideでは、これを避けるために言います後で...それはグローバルな範囲にない場合は正確にどこですか?
は角使ったことがないのに役立ちます願っていますが、APIの文言は、あなたがに工場として 'storage'を拘束しまし示唆'角型 'または' app'と呼ばれる何らかの種類のオブジェクトであり、潜在的に別名 'storage''でアクセス可能にしました。 – Marty
@Marty Hmm ...私はそれが理にかなっていると思う。その場合、ファクトリにストレージ機能へのアクセス権が与えられますが、他には何もありません。 – PDN