當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
JavaScript抽象类及Class.create备忘
生活随笔
收集整理的這篇文章主要介紹了
JavaScript抽象类及Class.create备忘
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我們知道抽象在面向?qū)ο笾械闹匾匚弧?br />而JavaScript雖不是一門(mén)戶嚴(yán)格意義上的面向?qū)ο笳Z(yǔ)言,但,它也可以有自己的面向?qū)ο髮?shí)現(xiàn)。
當(dāng)然包括抽象。
在JavaScript中,虛方法可以看作該類中沒(méi)有定義的方法,但已經(jīng)通過(guò)this指針使用了.
通過(guò)下面的示例可以看出:
?1var?tmp=function()
?2{
?3??{
?4?????this.ini.apply(this,arguments);?
?5???//這里的arguments是構(gòu)造函數(shù)的
?6//this.ini通過(guò)this調(diào)用,但卻是未定義的。
?7//將在其prototype中給出實(shí)現(xiàn)
?8??}
?9}
10//實(shí)現(xiàn)虛方法?ini,且提供給構(gòu)造函數(shù)調(diào)用
11tmp.prototype.ini=function()
12{
13??alert(arguments[0]);
14}
15var?tt=new?tmp('a');
在prototype.js中,對(duì)抽象類及類的創(chuàng)建有一段經(jīng)典的實(shí)現(xiàn):
如下:
?1?var?Class=
?2?{
?3???create:function()
?4???{
?5?????return?function()??//返回一個(gè)匿名函數(shù),也就是一個(gè)函數(shù)對(duì)象
?6?????{??????
?7????????this.ini.apply(this,arguments);??//此時(shí)的arguments是函數(shù)對(duì)象的構(gòu)造函數(shù)傳遞過(guò)來(lái)的參數(shù)對(duì)象
?8?????}
?9???}
10?}
11?
12?var?tmp=Class.create();
13?
14?//此時(shí)tmp相當(dāng)于
15?//var?tmp=function()
16?//{
17?//??this.ini.apply(this,arguments);
18?//}
19?//可以通過(guò)alert(tmp.toString());看出
20?tmp.prototype.ini=function()
21?{
22???????alert(arguments.length);??//這里的arguments是ini自身的參數(shù)
23?}
24?var?ttt=new?tmp('adf');
因?yàn)榈羧肓嗣嫦驅(qū)ο蟮哪嗵?#xff0c;導(dǎo)致對(duì)Class.create居然久久不能明了
很汗,一個(gè)簡(jiǎn)單的返回匿名函數(shù)居然將我迷糊了很久。
因此如上代碼記錄在此,以作備忘
當(dāng)然包括抽象。
在JavaScript中,虛方法可以看作該類中沒(méi)有定義的方法,但已經(jīng)通過(guò)this指針使用了.
通過(guò)下面的示例可以看出:
?1var?tmp=function()
?2{
?3??{
?4?????this.ini.apply(this,arguments);?
?5???//這里的arguments是構(gòu)造函數(shù)的
?6//this.ini通過(guò)this調(diào)用,但卻是未定義的。
?7//將在其prototype中給出實(shí)現(xiàn)
?8??}
?9}
10//實(shí)現(xiàn)虛方法?ini,且提供給構(gòu)造函數(shù)調(diào)用
11tmp.prototype.ini=function()
12{
13??alert(arguments[0]);
14}
15var?tt=new?tmp('a');
在prototype.js中,對(duì)抽象類及類的創(chuàng)建有一段經(jīng)典的實(shí)現(xiàn):
如下:
?1?var?Class=
?2?{
?3???create:function()
?4???{
?5?????return?function()??//返回一個(gè)匿名函數(shù),也就是一個(gè)函數(shù)對(duì)象
?6?????{??????
?7????????this.ini.apply(this,arguments);??//此時(shí)的arguments是函數(shù)對(duì)象的構(gòu)造函數(shù)傳遞過(guò)來(lái)的參數(shù)對(duì)象
?8?????}
?9???}
10?}
11?
12?var?tmp=Class.create();
13?
14?//此時(shí)tmp相當(dāng)于
15?//var?tmp=function()
16?//{
17?//??this.ini.apply(this,arguments);
18?//}
19?//可以通過(guò)alert(tmp.toString());看出
20?tmp.prototype.ini=function()
21?{
22???????alert(arguments.length);??//這里的arguments是ini自身的參數(shù)
23?}
24?var?ttt=new?tmp('adf');
因?yàn)榈羧肓嗣嫦驅(qū)ο蟮哪嗵?#xff0c;導(dǎo)致對(duì)Class.create居然久久不能明了
很汗,一個(gè)簡(jiǎn)單的返回匿名函數(shù)居然將我迷糊了很久。
因此如上代碼記錄在此,以作備忘
轉(zhuǎn)載于:https://www.cnblogs.com/McJeremy/archive/2009/01/14/1375779.html
總結(jié)
以上是生活随笔為你收集整理的JavaScript抽象类及Class.create备忘的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【转】近期Coolite控件的技术点总结
- 下一篇: 合成艺术字二 :使用的透明类以及所用的颜