?1?var?ClassUSA=function()
?2?
?3?{
?4?
?5???this.value='USA';
?6?
?7???this.getOtherValue=function()
?8?
?9???{
10?
11???}
12?
13?}
14?
15?var?ClassChina=function()
16?
17?{
18?
19???this.value='China';
20?
21???this.show=function()
22?
23???{
24?
25?????document.write(this.value);
26?
27???}
28?
29?}
30?
31?var?USA=new?ClassUSA();
32?
33?var?China=new?ClassChina();
34?
35?<需求一>在document上顯示USA的value.
36?
37?方案一:
38?
39?USA.show=China.show;
40?
41?方案二:
42?
43?China.show.apply(USA);
44?
45?方案一使USA擁有了方法show,而方案二沒有使USA擁有方法show.
46?
47?<需求二>
48?
49?使USA的show方法顯示China的value.(有這樣的需要.只是這個(gè)例子不是很恰當(dāng).這里先不考慮這些.)
50?
51?有兩個(gè)要點(diǎn),一是要使USA擁有show方法,二是要顯示的不是USA的value而是China的value.
52?
53?方案一:
54?
55?給China增加方法:
56?
57?ClassChina.show2=function()
58?
59?{
60?
61???return?function(){return?this.value;};
62?
63?}
64?
65?使用:
66?
67?USA.show=China.show2.apply(China);
68?
69?USA.show();
70?
71?方案二:
72?
73??
74?
75?Function.prototype.bind=function(object)
76?
77?{
78?
79?????var?_method=this;
80?
81?????return?function(){return?_method.apply(object);};
82?
83?}//簡(jiǎn)化的bind的,還應(yīng)該加入?yún)?shù)傳遞.
84?
85?USA.show=China.show.bind(China);
86?
87?使用:
88?
89?USA.show();
90?
91??
92?
93?OVER.
94?
?2?
?3?{
?4?
?5???this.value='USA';
?6?
?7???this.getOtherValue=function()
?8?
?9???{
10?
11???}
12?
13?}
14?
15?var?ClassChina=function()
16?
17?{
18?
19???this.value='China';
20?
21???this.show=function()
22?
23???{
24?
25?????document.write(this.value);
26?
27???}
28?
29?}
30?
31?var?USA=new?ClassUSA();
32?
33?var?China=new?ClassChina();
34?
35?<需求一>在document上顯示USA的value.
36?
37?方案一:
38?
39?USA.show=China.show;
40?
41?方案二:
42?
43?China.show.apply(USA);
44?
45?方案一使USA擁有了方法show,而方案二沒有使USA擁有方法show.
46?
47?<需求二>
48?
49?使USA的show方法顯示China的value.(有這樣的需要.只是這個(gè)例子不是很恰當(dāng).這里先不考慮這些.)
50?
51?有兩個(gè)要點(diǎn),一是要使USA擁有show方法,二是要顯示的不是USA的value而是China的value.
52?
53?方案一:
54?
55?給China增加方法:
56?
57?ClassChina.show2=function()
58?
59?{
60?
61???return?function(){return?this.value;};
62?
63?}
64?
65?使用:
66?
67?USA.show=China.show2.apply(China);
68?
69?USA.show();
70?
71?方案二:
72?
73??
74?
75?Function.prototype.bind=function(object)
76?
77?{
78?
79?????var?_method=this;
80?
81?????return?function(){return?_method.apply(object);};
82?
83?}//簡(jiǎn)化的bind的,還應(yīng)該加入?yún)?shù)傳遞.
84?
85?USA.show=China.show.bind(China);
86?
87?使用:
88?
89?USA.show();
90?
91??
92?
93?OVER.
94?