Javascriptモジュールモード学習共有
12997 ワード
モジュールモードに触れると聞いたことがありますが、今回は整理してみました.
モジュールモードの基本的な点は、匿名関数のクローズドであり、これにより実現される.
モジュールモードの拡張
親オブジェクトへの参照を保持します.この中で元のモジュールへの参照を維持します.
コピーと継承は、第一の方式を採用したモジュールが痛いです.ハスPropertyの拡張を利用して引用に基づいていますので、もう一方を変えても変わります.
私のあのようなこすりつけのfunction newの方式を採用して、継承を利用してこのような影響をもたらさないで、これは長所です.
原文の作者のその書類にまたがる私有状態は本当に立派で、勉強しました.
同前sealユニセックスのロックな思想、かっこいいです.
こすり合わせて一度きりました.間違いがあったら指摘してください.勉強中です.
付原文著者牛強制リンクhttp://blog.jobbole.com/40409/
モジュールモードの基本的な点は、匿名関数のクローズドであり、これにより実現される.
1 //
2
3 var MODULE = (function(){
4 /* this 、 my 、return my; my 、 MODULE, my , */
5 var my = {},
6 _age;
7
8 /*
9
10 // 、C++
11 my.setAge = function(age){
12 age = age;
13 }
14
15 */
16
17 my.setAge = function(tmp){
18 age = tmp;
19 };
20
21 my.getAge = function(){
22 console.log(age);
23 };
24
25 return my;
26 }());
27
28
29 MODULE.setAge(2);
30 MODULE.getAge();
これは前に書いたものですので、決定がちょっとばかばかしいです. 1 //
2 // 、 、 、 、
3 // 、 new 、
4 // 、 、 、
5
6 var MODULE1 = (function(){
7 var age;
8
9 return function(){
10 this.getAge = function(){
11 console.log(age);
12 }
13 this.setAge = function(tmp){
14 age = tmp;
15 }
16 }
17 }());
18
19 /*
20
21 MODULE1().setAge(2);
22 MODULE1().getAge();
23 */
24 var a = new MODULE1();
25 a.setAge(3);
26 a.getAge();
1 // 、
2 var b = (function($){
3 // do something
4 }(jQuery));
モジュールモードの拡張
1 //
2 // B
3 MODULE.weight = 1;
4 MODULE.setWeight = function(tmp){
5 weight = tmp;
6 };
7
8 MODULE.getWeight = function(){
9 console.log(weight);
10 };
11
12 MODULE.setWeight(100);
13 MODULE.getWeight();
14
15
16 // 、 、 、 、 、
17
18 var MODULE = (function(my){
19 //
20 my.gf = "You";
21 //var gf = "You";
22 my.getGf = function(){
23 // console.log(gf) Nodejs 、gf 、 my.gf my 、gf
24 // var gf = “You” console.log(gf); 、
25 // var gf gf my.gf 、 、
26 // var gf' 、 setGf
27 console.log(my.gf);
28 };
29 my.setGf = function(tmp){
30 gf = tmp;
31 };
32
33 // and so on
34 return my;
35 }(MODULE) || {});
36
37
38 MODULE.getGf();
//あの牛文の中の緊密な拡張は継承中のc.klass=p.prototypeに似ています.親オブジェクトへの参照を保持します.この中で元のモジュールへの参照を維持します.
コピーと継承は、第一の方式を採用したモジュールが痛いです.ハスPropertyの拡張を利用して引用に基づいていますので、もう一方を変えても変わります.
私のあのようなこすりつけのfunction newの方式を採用して、継承を利用してこのような影響をもたらさないで、これは長所です.
var MODULE = (function (my) {
var old_moduleMethod = my.moduleMethod;
my.moduleMethod = function () {
// method override, has access to old through old_moduleMethod...
// 、 old_moduleMethod ? my.moduleMethod 、 old_moduleMethod ...
};
return my;
}(MODULE));
原文の作者のその書類にまたがる私有状態は本当に立派で、勉強しました.
同前sealユニセックスのロックな思想、かっこいいです.
1 // 、
2 MODULE.xxx = (function(){
3 var you = {};
4
5 //
6 return you;
7 }());
こすり合わせて一度きりました.間違いがあったら指摘してください.勉強中です.
付原文著者牛強制リンクhttp://blog.jobbole.com/40409/