1
function
myfun1(){
2 // 这是私有属性
3 var private1 = " 这是私有属性 " ;
4 var privateMethod = function (){
5 alert(private1);
6 }
7 // 这是实例属性
8 this .publicvar = " 这是实例属性 " ;
9 this .public1 = function (){
10 privateMethod();
11 }
12 }
2 // 这是私有属性
3 var private1 = " 这是私有属性 " ;
4 var privateMethod = function (){
5 alert(private1);
6 }
7 // 这是实例属性
8 this .publicvar = " 这是实例属性 " ;
9 this .public1 = function (){
10 privateMethod();
11 }
12 }
1
var
newfun1
=
new
myfun1();
2 newfun1.public1(); // 这是私有属性
3 alert(newfun1.publicvar); // 这是实例属性
4 alert(newfun1.private1); // undefined newfun1.privateMethod(); //运行错误
2 newfun1.public1(); // 这是私有属性
3 alert(newfun1.publicvar); // 这是实例属性
4 alert(newfun1.private1); // undefined newfun1.privateMethod(); //运行错误
1
function
myfun2(){
2 }
3 myfun2.staticvar = " 这是静态属性 " ;
4 myfun2.staticmethod = function (){
5 alert(myfun2.staticvar);
6 }
7 var newfun2 = new myfun2();
8 // newfun2.staticmethod();//运行错误;
9 alert(newfun2.staticvar); // undefined
2 }
3 myfun2.staticvar = " 这是静态属性 " ;
4 myfun2.staticmethod = function (){
5 alert(myfun2.staticvar);
6 }
7 var newfun2 = new myfun2();
8 // newfun2.staticmethod();//运行错误;
9 alert(newfun2.staticvar); // undefined
1
//
静态私有成员
2 var myfun3 = ( function (){
3 function privateProperty(){
4
5 }
6 privateProperty.staticvar = " 这是静态私有成员 " ;
7 privateProperty.staticmethod = function (){
8 alert(privateProperty.staticvar);
9 }
10 privateProperty.staticmethod();
11 return privateProperty
12 })();
2 var myfun3 = ( function (){
3 function privateProperty(){
4
5 }
6 privateProperty.staticvar = " 这是静态私有成员 " ;
7 privateProperty.staticmethod = function (){
8 alert(privateProperty.staticvar);
9 }
10 privateProperty.staticmethod();
11 return privateProperty
12 })();
1
//
静态类
2 var funcount = 0 ;
3 var myfun4 = new function (){
4 funcount ++ ;
5 this .printCount = function (){
6 alert(funcount);
7 }
8 }
9 myfun4.printCount(); // 输出1;
10 myfun4.printCount(); // 输出1;
11 myfun4.prototype.amethod = function (){
12 alert( " 原型对象 " );
13 } // 运行错误
14 var newfun4 = new myfun4();
15 newfun4.amethod();
2 var funcount = 0 ;
3 var myfun4 = new function (){
4 funcount ++ ;
5 this .printCount = function (){
6 alert(funcount);
7 }
8 }
9 myfun4.printCount(); // 输出1;
10 myfun4.printCount(); // 输出1;
11 myfun4.prototype.amethod = function (){
12 alert( " 原型对象 " );
13 } // 运行错误
14 var newfun4 = new myfun4();
15 newfun4.amethod();
1
//
运行错误,说明myfun3创建并实例化之后就不能再为它添加方法,属性
2 new myfun3.constructor().printCount(); // 如果你确实想实例化,这样也可以.
3 // 原型继承
4 var myfun5 = function (){
5
6 }
7 myfun5.prototype.myfun5_extend = function (){
8 alert( " 这是原型继承的 " );
9 }
10 var myfun5_sub = function (){
11
12 }
13 myfun5_sub.prototype = new myfun5();
14 var newfun5 = new myfun5_sub();
15 newfun5.myfun5_extend(); // 这是原型继承的
16 // 调用继承
17 var myfun6 = function (){
18 this .method_p = function (){
19 alert( " 这是调用继承的 " );
20 }
21 }
22 var myfun6_sub = function (){
23 myfun6.call( this );
24 }
25
26 var newfun6 = new myfun6_sub();
27 newfun6.method_p(); // 这是调用继承的
28 // 覆盖
29 var myfun7 = function (){
30 this .method = function (){
31 alert( " 这是父对象方法 " );
32 }
33 }
34 var myfun7_sub = function (){
35 this .method = function (){
36 alert( " 这是子对象方法 " );
37 }
38 }
39 myfun7_sub.prototype = new myfun7();
40 var newfun7 = new myfun7_sub();
41 newfun7.method(); // 这是子对象方法,父对象方法被覆盖了.
42 // 多态
43 function myfun8(a, b){
44 var a = a;
45 var b = b;
46 if ( typeof a == " number " && typeof b == " number " ) {
47 alert(a * b);
48 } else if ( typeof a == " string " && typeof b == " string " ) {
49 alert(a + b);
50 } else {
51 alert( " 输入错啦 " );
52 }
53 }
54
55 myfun8( 3 , 4 ); // 输出12;
56 myfun8( " hi, " , " 你好 " ); // 输出hi,你好;
57 myfun8( " hi " , 5 ); // 输入错啦.
58
2 new myfun3.constructor().printCount(); // 如果你确实想实例化,这样也可以.
3 // 原型继承
4 var myfun5 = function (){
5
6 }
7 myfun5.prototype.myfun5_extend = function (){
8 alert( " 这是原型继承的 " );
9 }
10 var myfun5_sub = function (){
11
12 }
13 myfun5_sub.prototype = new myfun5();
14 var newfun5 = new myfun5_sub();
15 newfun5.myfun5_extend(); // 这是原型继承的
16 // 调用继承
17 var myfun6 = function (){
18 this .method_p = function (){
19 alert( " 这是调用继承的 " );
20 }
21 }
22 var myfun6_sub = function (){
23 myfun6.call( this );
24 }
25
26 var newfun6 = new myfun6_sub();
27 newfun6.method_p(); // 这是调用继承的
28 // 覆盖
29 var myfun7 = function (){
30 this .method = function (){
31 alert( " 这是父对象方法 " );
32 }
33 }
34 var myfun7_sub = function (){
35 this .method = function (){
36 alert( " 这是子对象方法 " );
37 }
38 }
39 myfun7_sub.prototype = new myfun7();
40 var newfun7 = new myfun7_sub();
41 newfun7.method(); // 这是子对象方法,父对象方法被覆盖了.
42 // 多态
43 function myfun8(a, b){
44 var a = a;
45 var b = b;
46 if ( typeof a == " number " && typeof b == " number " ) {
47 alert(a * b);
48 } else if ( typeof a == " string " && typeof b == " string " ) {
49 alert(a + b);
50 } else {
51 alert( " 输入错啦 " );
52 }
53 }
54
55 myfun8( 3 , 4 ); // 输出12;
56 myfun8( " hi, " , " 你好 " ); // 输出hi,你好;
57 myfun8( " hi " , 5 ); // 输入错啦.
58
1
function
myfun1(){
2 // 这是私有属性
3 var private1 = " 这是私有属性 " ;
4 var privateMethod = function (){
5 alert(private1);
6 }
7 // 这是实例属性
8 this .publicvar = " 这是实例属性 " ;
9 this .public1 = function (){
10 privateMethod();
11 }
12 }
2 // 这是私有属性
3 var private1 = " 这是私有属性 " ;
4 var privateMethod = function (){
5 alert(private1);
6 }
7 // 这是实例属性
8 this .publicvar = " 这是实例属性 " ;
9 this .public1 = function (){
10 privateMethod();
11 }
12 }
1
var
newfun1
=
new
myfun1();
2 newfun1.public1(); // 这是私有属性
3 alert(newfun1.publicvar); // 这是实例属性
4 alert(newfun1.private1); // undefined newfun1.privateMethod(); //运行错误
2 newfun1.public1(); // 这是私有属性
3 alert(newfun1.publicvar); // 这是实例属性
4 alert(newfun1.private1); // undefined newfun1.privateMethod(); //运行错误
1
function
myfun2(){
2 }
3 myfun2.staticvar = " 这是静态属性 " ;
4 myfun2.staticmethod = function (){
5 alert(myfun2.staticvar);
6 }
7 var newfun2 = new myfun2();
8 // newfun2.staticmethod();//运行错误;
9 alert(newfun2.staticvar); // undefined
2 }
3 myfun2.staticvar = " 这是静态属性 " ;
4 myfun2.staticmethod = function (){
5 alert(myfun2.staticvar);
6 }
7 var newfun2 = new myfun2();
8 // newfun2.staticmethod();//运行错误;
9 alert(newfun2.staticvar); // undefined
1
//
静态私有成员
2 var myfun3 = ( function (){
3 function privateProperty(){
4
5 }
6 privateProperty.staticvar = " 这是静态私有成员 " ;
7 privateProperty.staticmethod = function (){
8 alert(privateProperty.staticvar);
9 }
10 privateProperty.staticmethod();
11 return privateProperty
12 })();
2 var myfun3 = ( function (){
3 function privateProperty(){
4
5 }
6 privateProperty.staticvar = " 这是静态私有成员 " ;
7 privateProperty.staticmethod = function (){
8 alert(privateProperty.staticvar);
9 }
10 privateProperty.staticmethod();
11 return privateProperty
12 })();
1
//
静态类
2 var funcount = 0 ;
3 var myfun4 = new function (){
4 funcount ++ ;
5 this .printCount = function (){
6 alert(funcount);
7 }
8 }
9 myfun4.printCount(); // 输出1;
10 myfun4.printCount(); // 输出1;
11 myfun4.prototype.amethod = function (){
12 alert( " 原型对象 " );
13 } // 运行错误
14 var newfun4 = new myfun4();
15 newfun4.amethod();
2 var funcount = 0 ;
3 var myfun4 = new function (){
4 funcount ++ ;
5 this .printCount = function (){
6 alert(funcount);
7 }
8 }
9 myfun4.printCount(); // 输出1;
10 myfun4.printCount(); // 输出1;
11 myfun4.prototype.amethod = function (){
12 alert( " 原型对象 " );
13 } // 运行错误
14 var newfun4 = new myfun4();
15 newfun4.amethod();
1
//
运行错误,说明myfun3创建并实例化之后就不能再为它添加方法,属性
2 new myfun3.constructor().printCount(); // 如果你确实想实例化,这样也可以.
3 // 原型继承
4 var myfun5 = function (){
5
6 }
7 myfun5.prototype.myfun5_extend = function (){
8 alert( " 这是原型继承的 " );
9 }
10 var myfun5_sub = function (){
11
12 }
13 myfun5_sub.prototype = new myfun5();
14 var newfun5 = new myfun5_sub();
15 newfun5.myfun5_extend(); // 这是原型继承的
16 // 调用继承
17 var myfun6 = function (){
18 this .method_p = function (){
19 alert( " 这是调用继承的 " );
20 }
21 }
22 var myfun6_sub = function (){
23 myfun6.call( this );
24 }
25
26 var newfun6 = new myfun6_sub();
27 newfun6.method_p(); // 这是调用继承的
28 // 覆盖
29 var myfun7 = function (){
30 this .method = function (){
31 alert( " 这是父对象方法 " );
32 }
33 }
34 var myfun7_sub = function (){
35 this .method = function (){
36 alert( " 这是子对象方法 " );
37 }
38 }
39 myfun7_sub.prototype = new myfun7();
40 var newfun7 = new myfun7_sub();
41 newfun7.method(); // 这是子对象方法,父对象方法被覆盖了.
42 // 多态
43 function myfun8(a, b){
44 var a = a;
45 var b = b;
46 if ( typeof a == " number " && typeof b == " number " ) {
47 alert(a * b);
48 } else if ( typeof a == " string " && typeof b == " string " ) {
49 alert(a + b);
50 } else {
51 alert( " 输入错啦 " );
52 }
53 }
54
55 myfun8( 3 , 4 ); // 输出12;
56 myfun8( " hi, " , " 你好 " ); // 输出hi,你好;
57 myfun8( " hi " , 5 ); // 输入错啦.
58
2 new myfun3.constructor().printCount(); // 如果你确实想实例化,这样也可以.
3 // 原型继承
4 var myfun5 = function (){
5
6 }
7 myfun5.prototype.myfun5_extend = function (){
8 alert( " 这是原型继承的 " );
9 }
10 var myfun5_sub = function (){
11
12 }
13 myfun5_sub.prototype = new myfun5();
14 var newfun5 = new myfun5_sub();
15 newfun5.myfun5_extend(); // 这是原型继承的
16 // 调用继承
17 var myfun6 = function (){
18 this .method_p = function (){
19 alert( " 这是调用继承的 " );
20 }
21 }
22 var myfun6_sub = function (){
23 myfun6.call( this );
24 }
25
26 var newfun6 = new myfun6_sub();
27 newfun6.method_p(); // 这是调用继承的
28 // 覆盖
29 var myfun7 = function (){
30 this .method = function (){
31 alert( " 这是父对象方法 " );
32 }
33 }
34 var myfun7_sub = function (){
35 this .method = function (){
36 alert( " 这是子对象方法 " );
37 }
38 }
39 myfun7_sub.prototype = new myfun7();
40 var newfun7 = new myfun7_sub();
41 newfun7.method(); // 这是子对象方法,父对象方法被覆盖了.
42 // 多态
43 function myfun8(a, b){
44 var a = a;
45 var b = b;
46 if ( typeof a == " number " && typeof b == " number " ) {
47 alert(a * b);
48 } else if ( typeof a == " string " && typeof b == " string " ) {
49 alert(a + b);
50 } else {
51 alert( " 输入错啦 " );
52 }
53 }
54
55 myfun8( 3 , 4 ); // 输出12;
56 myfun8( " hi, " , " 你好 " ); // 输出hi,你好;
57 myfun8( " hi " , 5 ); // 输入错啦.
58