最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Js組件的一些寫法

 更新時間:2010年09月10日 16:47:42   作者:  
今天看了rank的一篇javascript腳本控件topic,突然想總結(jié)一下一些寫JS組件的方法,或者說一些不同人的不同coding style。
今天看了rank的一篇javascript腳本控件topic,突然想總結(jié)一下一些寫JS組件的方法,或者說一些不同人的不同coding style。

  首先看下Prototype里的寫法:
復(fù)制代碼 代碼如下:

var Class = {
create: function() {
return function() { this.init.apply(this, arguments); }
}
}
var A = Class.create();
A.prototype = {
init: function(msg) {
this.msg = msg;
},
fn: function() {
alert(this.msg);
}
}
var a = new A("myMsg");
a.fn();

如果你不喜歡上面這一大堆Class.create之類的,你也可以這樣:
復(fù)制代碼 代碼如下:

function A() { } //var A = function(){}
A.prototype = {
init: function(msg) {
this.msg = msg;
},
fn: function() {
alert(this.msg);
}
}
var a = new A();
a.init("myMsg");
a.fn();

當(dāng)然,也可以把this.msg的初始化放到function A(msg){this.msg=msg;}里??傊銜l(fā)現(xiàn)這樣調(diào)用很麻煩,并且參數(shù)是固定對應(yīng)好的。
  你如果既不愿搞一大堆Class.create,也不愿調(diào)用不方便,那就把Prototype里的var Class = {...} 和 var A = Class.create();合并起來。得到:
復(fù)制代碼 代碼如下:

function A() {
this.init.apply(this, arguments);
}
A.prototype = {
init: function(msg) {
this.msg = msg;
},
fn: function() {
alert(this.msg);
}
}
var a = new A("myMsg");
a.fn();

看上去干凈了許多,但是如果你的庫里有很多組件,則每個組件都要寫一遍this.init.apply(this, arguments); 如果用Class.create的話,則只要寫一個Class,然后每個組件執(zhí)行下Class.create()即可。當(dāng)然,每個組件都寫一遍this.init.apply(this, arguments);也沒啥不好的,還是看個人喜好了。另外寫原型方法是合在一起還是分開來寫也是個人喜好,出于封裝的角度,合一起好,但是分開有時候顯的更清晰。譬如A.prototype.init=function(msg){...} A.prototype.fn=function(){...}

  然后還有人喜歡這樣去寫組件:
復(fù)制代碼 代碼如下:

var A = function(msg) {
this.msg = msg;
var _this = this;
var privateFn1 = function() {
alert(_this.msg);
}
var privateFn2 = function() {
alert(_this.msg);
}
return { fn1: privateFn1, fn2: privateFn2 };
}
var a = new A("myMsg");
a.fn1();

這邊一定要把A構(gòu)造的對象this放到臨時變量_this中哦,因為運(yùn)行時,privateFn1的函數(shù)體內(nèi)this實(shí)際是{fn1:...,fn2:...}這樣的匿名對象,你可以用this.hasOwnProperty("fn1")去測試。this是在運(yùn)行時才有意義的一個東西。另外這種方法每個對象都會有privateFn1 和 privateFn2的副本,這種方法不太好。

  (未完待續(xù),下面會講些不同框架的一些寫法)
作者:JayChow

相關(guān)文章

  • javascript中判斷json的方法總結(jié)

    javascript中判斷json的方法總結(jié)

    JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,采用完全獨(dú)立于語言的文本格式,是理想的數(shù)據(jù)交換格式。同時,JSON是 JavaScript 原生格式,這意味著在 JavaScript 中處理 JSON數(shù)據(jù)不須要任何特殊的API或工具包,接下來跟著小編學(xué)習(xí)js中判斷json的方法吧
    2015-08-08
  • js對象淺拷貝和深拷貝詳解

    js對象淺拷貝和深拷貝詳解

    這篇文章主要為大家詳細(xì)介紹了JavaScript對象的淺拷貝和深拷貝代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 微信JS-SDK updateAppMessageShareData安卓不能自定義分享詳解

    微信JS-SDK updateAppMessageShareData安卓不能自定義分享詳解

    這篇文章主要介紹了微信JS-SDK updateAppMessageShareData安卓不能自定義分享詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • JS實(shí)現(xiàn)可改變列寬的table實(shí)例

    JS實(shí)現(xiàn)可改變列寬的table實(shí)例

    本文為大家詳細(xì)介紹下通過JS實(shí)現(xiàn)可改變列寬的table,具體的思路及代碼如下,感興趣的朋友可以參考下哈,希望對大家有所幫助
    2013-07-07
  • javascript格式化指定日期對象的方法

    javascript格式化指定日期對象的方法

    這篇文章主要介紹了javascript格式化指定日期對象的方法,涉及javascript針對日期對象操作的相關(guān)技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-04-04
  • 微信小程序?qū)崿F(xiàn)action-sheet彈出底部菜單功能【附源碼下載】

    微信小程序?qū)崿F(xiàn)action-sheet彈出底部菜單功能【附源碼下載】

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)action-sheet彈出底部菜單功能,結(jié)合實(shí)例形式分析了action-sheet組件彈出菜單的使用技巧,包括元素遍歷、事件響應(yīng)及屬性設(shè)置等操作方法,并附帶源碼供讀者下載參考,需要的朋友可以參考下
    2017-12-12
  • js字符串操作總結(jié)(必看篇)

    js字符串操作總結(jié)(必看篇)

    下面小編就為大家?guī)硪黄猨s字符串操作總結(jié)(必看篇)。小編覺得挺不錯的,希望對大家有所幫助。一起跟隨小編過來看看吧,祝大家游戲愉快哦
    2016-11-11
  • js去除輸入框中所有的空格和禁止輸入空格的方法

    js去除輸入框中所有的空格和禁止輸入空格的方法

    這篇文章主要介紹當(dāng)輸入框輸入數(shù)值的時候使用js去除所有的空格和禁止輸入空格的方法,需要的朋友可以參考下
    2014-06-06
  • javascript css styleFloat和cssFloat

    javascript css styleFloat和cssFloat

    在寫js操作css的過程中發(fā)現(xiàn)float屬性在IE和firefox下對應(yīng)的js腳本是不一樣的,IE下對應(yīng)得是 styleFloat,firefox,chorme,safari下對應(yīng)的是cssFloat,可用in運(yùn)算符去檢測style是否包含此屬性。
    2010-03-03
  • javascript動態(tài)添加單元格的腳本代碼

    javascript動態(tài)添加單元格的腳本代碼

    javascript動態(tài)添加單元格的腳本代碼...
    2007-11-11

最新評論

池州市| 云龙县| 长子县| 齐河县| 德保县| 贵港市| 新平| 乳山市| 黎川县| 游戏| 阜城县| 桃园县| 上虞市| 武汉市| 湾仔区| 铜梁县| 泾川县| 武威市| 湖南省| 清流县| 得荣县| 格尔木市| 大渡口区| 杨浦区| 三明市| 桃园县| 邵武市| 曲周县| 田东县| 辉南县| 雷波县| 永济市| 阳新县| 兰州市| 江川县| 随州市| 闽清县| 华蓥市| 定边县| 古交市| 黑山县|