您的位置:新葡亰496net > 服务器网络 > 源码汉语表达之,超强推荐第1

源码汉语表达之,超强推荐第1

发布时间:2019-12-01 01:29编辑:服务器网络浏览(112)

    /** *概念多少个大局对象,属性Version在昭示的时候会改动为当前版本号 */ varPrototype={ Version:'@@VERSION@@' } /** *开创新意识气风发种等级次序,注意其本性create是三个主意,重返多个布局函数。 *相像采纳如下 *varX=Class.create(卡塔尔;再次来到二个档期的顺序,相似于java的贰个Class实例。 *要选取X类型,需后续用newX(卡塔尔(قطر‎来博取叁个实例,就像是java的Class.newInstance(卡塔尔(قطر‎方法。 * *重临的构造函数会进行名称叫initialize的办法,initialize是Ruby对象的布局器方法名字。 *那时候initialize方法还还未有概念,其后的代码中成立新类型时会构造建设相应的同名方法。 * *假诺必须求从java上去精晓。你能够知晓为用Class.create(卡塔尔国创造二个接续java.lang.Class类的类。当然java不容许那样做,因为Class类是final的 * */ varClass={ create:function{ this.initialize.apply; } } } /** *创造一个对象,从变量名来寻思,本意只怕是概念两个抽象类,今后创办新对象都extend它。 *但从其后代码的运用来看,Abstract越来越多是为着保全命名空间清晰的考虑。 *约等于说,大家能够给Abstract这些目的实例增添新的目的定义。 * *从java去驾驭,即是动态给八个对象创造内部类。 */ varAbstract=newObject(); /** *得到参数对象的全体属性和章程,有一点象多种世袭。然则这种持续是动态拿到的。 *如: *vara=newObjectA; *varc=a.extend; *那时候c对象同有的时候间具备a和b对象的品质和办法。可是与多种继承不一致的是,cinstanceofObjectB将再次回到false。 */ Object.prototype.extend=function{ for{ this[property]=object[property]; } returnthis; } /** *那么些主意很风趣,它包裹一个javascript函数对象,再次来到叁个新函数对象,新函数对象的着珍视和原对象相同,不过bind(卡塔尔(قطر‎方法参数将被视作当前指标的目的。 *也便是说新函数中的this引用被转移为参数提供的靶子。 *比如: * * *................. *

    复制代码 代码如下:PrototypeisaJavaScriptframeworkthataimstoeasedevelopmentofdynamicwebapplications.Featuringaunique,easy-to-usetoolkitforclass-drivendevelopmentandthenicestAjaxlibraryaround,PrototypeisquicklybecomingthecodebaseofchoiceforWeb2.0developerseverywhere.RubyOnRails中文社区的苏醒贴了一心一德对此prototype的源码解读体会,颇负借鉴意义。笔者向往Javascript,热衷于Ajax应用。笔者把温馨读书prototype源码的体味写下去,希望对大家重新认知Javascript有所补助。 prototype.js代码:复制代码 代码如下:/** 2 3*概念三个大局对象,属性Version在发布的时候会轮番为最近版本号 4 5*/ 6 7varPrototype={ 8 9Version:'@@VERSION@@' 10 11} 12 13 14/** 15 16*创立风华正茂种档次,注意其天性create是一个方法,再次回到多少个构造函数。 17 18*貌似选择如下 1918*varX=Class.create(卡塔尔(قطر‎;重回二个体系,形似于java的几个 21 22*Class实例。 23 24*要运用X类型,需一连用newX(卡塔尔来获得二个实例,就如java的 25 26*Class.newInstance()方法。 27 28* 29 30*回来的构造函数会进行名称叫initialize的办法,initialize是 31 32*Ruby对象的结构器方法名字。 33 34*那时initialize方法还尚无概念,其后的代码中成立新类型时会创建 35 36*相应的同名方法。 37 38* 39 40*假定必要求从java上去精晓。你能够知晓为用Class.create(卡塔尔(英语:State of Qatar)创立三个 41 42*继承java.lang.Class类的类。 43 44*本来java不一致敬那样做,因为Class类是final的 45 46* 47 48*/ 49 50varClass={ 51 52create:function(){ 53 54returnfunction(){ 55 56this.initialize.apply; 57 58} 59 60} 61 62} 63 64 65/** 66 67*创建八个对象,从变量名来思虑,本意或者是概念二个抽象类,未来创办 68 69*新对象都extend它。 70 71*但从其后代码的行使来看,Abstract更加多是为着保险命名空间清晰的思忖。 72 73*也正是说,我们得以给Abstract这一个目的实例增添新的指标定义。 74 75* 76 77*从java去明白,正是动态给三个指标创设内部类。 78 79*/ 80 81varAbstract=newObject(); 82 83 84/** 85 86*赢得参数对象的具备属性和艺术,有一点点象多种世袭。但是这种持续是动态得到的。 87 88*如: 89 90*vara=newObjectA; 91 92*新葡亰496net,varc=a.extend; 93 94*这时候c对象同有的时候间具有a和b对象的本性和措施。可是与多种世襲差别的是, 95 96*cinstanceofObjectB将返回false。 97 98*/ 99 100Object.prototype.extend=function{ 101 102for{ 103 104this[property]=object[property]; 105 106} 107 108returnthis; 109 110} 111 112 113/** 114 115*其风流浪漫措施很风趣,它包裹二个javascript函数对象,再次来到二个新函数对象,新函 116 117*数对象的主导和原对象相似,可是bind(卡塔尔国方法参数将被看作当前指标的靶子。 118 119*约等于说新函数中的this引用被转移为参数提供的对象。 120121*比如: 122 123* 124 125* 126 127*................. 128 129*

    *那么,调用aaa.showValue将返回"aaa",但调用aaa.showValue2将返回"bbb"。 * *apply是ie5.5后才现身的新点子。 *该措施更加多的材质参谋MSDN源码汉语表达之,超强推荐第1。 *再有三个call方法,应用起来和apply相似。能够同步商量下。 */ Function.prototype.bind=function{ varmethod=this; returnfunction(){ method.apply; } } /** *和bind同样,但是那些艺术平时用做html控件对象的事件管理。所以要传送event对象 *留意此时,用到了Function.call。它与Function.apply的两样好像只有是对参数方式的定义。 *就如java多少个过载的法子。 */ Function.prototype.bindAsEventListener=function{ varmethod=this; returnfunction{ method.call(object,event||window.event); } } /** *将整数方式SportageGB颜色值转变为HEX方式 */ Number.prototype.toColorPart=function(){ vardigits=this.toStringreturn'0' digits; returndigits; } /** *非凡Ruby风格的函数,将参数中的方法每一种调用,重返第三个成功进行的艺术的归来值 */ varTry={ these:function(){ varreturnValue; for(vari=0;i

    140 141*那么,调用aaa.showValue将返回"aaa", 142 143*但调用aaa.showValue2将返回"bbb"。 144 145* 146 147*apply是ie5.5后才面世的新办法。 148 149*该方法更加的多的资料参谋MSDN 150 151* 152 153*再有一个call方法,应用起来和apply相像。能够同步研商下。 154 155*/ 156 157Function.prototype.bind=function{ 158 159varmethod=this; 160 161returnfunction(){ 162 163method.apply; 164 165} 166 167} 168 169 170/** 171 172*和bind同样,可是那个主意日常用做html控件对象的事件管理。所以要传送event对象 173 174*在乎那时,用到了Function.call。它与Function.apply的比不上好像独有是对参 175 176*数样式的概念。就如java四个过载的方式。 177 178*/ 179 180Function.prototype.bindAsEventListener=function{ 181 182varmethod=this; 183 184returnfunction{ 185 186method.call(object,event||window.event); 187 188} 189 190} 191 192 193/** 194 195*将整数方式帕杰罗GB颜色值转变为HEX方式 196 197*/ 198 199Number.prototype.toColorPart=function(){ 200 201vardigits=this.toString; 202 203ifreturn'0' digits; 204 205returndigits; 206 207} 208 209 210/** 211 212*卓绝群伦Ruby风格的函数,将参数中的方法各种调用,重临第一个成功试行的措施的回到值 213 214*/ 215 216varTry={ 217 218these:function(卡塔尔{ 2壹玖贰叁0varreturnValue; 221 222 223for(vari=0;i123下生机勃勃页阅读全文

    本文由新葡亰496net发布于服务器网络,转载请注明出处:源码汉语表达之,超强推荐第1

    关键词:

上一篇:新葡亰496netjs类_prototype_脚本之家

下一篇:没有了