當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript抽象类及Class.create备忘
生活随笔
收集整理的這篇文章主要介紹了
JavaScript抽象类及Class.create备忘
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們知道抽象在面向對象中的重要地位。
而JavaScript雖不是一門戶嚴格意義上的面向對象語言,但,它也可以有自己的面向對象實現。
當然包括抽象。
在JavaScript中,虛方法可以看作該類中沒有定義的方法,但已經通過this指針使用了.
通過下面的示例可以看出:
?1var?tmp=function()
?2{
?3??{
?4?????this.ini.apply(this,arguments);?
?5???//這里的arguments是構造函數的
?6//this.ini通過this調用,但卻是未定義的。
?7//將在其prototype中給出實現
?8??}
?9}
10//實現虛方法?ini,且提供給構造函數調用
11tmp.prototype.ini=function()
12{
13??alert(arguments[0]);
14}
15var?tt=new?tmp('a');
在prototype.js中,對抽象類及類的創建有一段經典的實現:
如下:
?1?var?Class=
?2?{
?3???create:function()
?4???{
?5?????return?function()??//返回一個匿名函數,也就是一個函數對象
?6?????{??????
?7????????this.ini.apply(this,arguments);??//此時的arguments是函數對象的構造函數傳遞過來的參數對象
?8?????}
?9???}
10?}
11?
12?var?tmp=Class.create();
13?
14?//此時tmp相當于
15?//var?tmp=function()
16?//{
17?//??this.ini.apply(this,arguments);
18?//}
19?//可以通過alert(tmp.toString());看出
20?tmp.prototype.ini=function()
21?{
22???????alert(arguments.length);??//這里的arguments是ini自身的參數
23?}
24?var?ttt=new?tmp('adf');
因為掉入了面向對象的泥潭,導致對Class.create居然久久不能明了
很汗,一個簡單的返回匿名函數居然將我迷糊了很久。
因此如上代碼記錄在此,以作備忘
而JavaScript雖不是一門戶嚴格意義上的面向對象語言,但,它也可以有自己的面向對象實現。
當然包括抽象。
在JavaScript中,虛方法可以看作該類中沒有定義的方法,但已經通過this指針使用了.
通過下面的示例可以看出:
?1var?tmp=function()
?2{
?3??{
?4?????this.ini.apply(this,arguments);?
?5???//這里的arguments是構造函數的
?6//this.ini通過this調用,但卻是未定義的。
?7//將在其prototype中給出實現
?8??}
?9}
10//實現虛方法?ini,且提供給構造函數調用
11tmp.prototype.ini=function()
12{
13??alert(arguments[0]);
14}
15var?tt=new?tmp('a');
在prototype.js中,對抽象類及類的創建有一段經典的實現:
如下:
?1?var?Class=
?2?{
?3???create:function()
?4???{
?5?????return?function()??//返回一個匿名函數,也就是一個函數對象
?6?????{??????
?7????????this.ini.apply(this,arguments);??//此時的arguments是函數對象的構造函數傳遞過來的參數對象
?8?????}
?9???}
10?}
11?
12?var?tmp=Class.create();
13?
14?//此時tmp相當于
15?//var?tmp=function()
16?//{
17?//??this.ini.apply(this,arguments);
18?//}
19?//可以通過alert(tmp.toString());看出
20?tmp.prototype.ini=function()
21?{
22???????alert(arguments.length);??//這里的arguments是ini自身的參數
23?}
24?var?ttt=new?tmp('adf');
因為掉入了面向對象的泥潭,導致對Class.create居然久久不能明了
很汗,一個簡單的返回匿名函數居然將我迷糊了很久。
因此如上代碼記錄在此,以作備忘
轉載于:https://www.cnblogs.com/McJeremy/archive/2009/01/14/1375779.html
總結
以上是生活随笔為你收集整理的JavaScript抽象类及Class.create备忘的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】近期Coolite控件的技术点总结
- 下一篇: 图解 CSS (1): 先做一个样式表测