• 您現在的位置是:首頁 >每日動態 > 2022-08-17 16:21:13 來源:

    外部應用

    導讀 大家好,小霞來為大家解答以上的問題。外部應用這個很多人還不知道,現在讓我們一起來看看吧!1、只講一種。2、Ext的extend函數采用的就是其

    大家好,小霞來為大家解答以上的問題。外部應用這個很多人還不知道,現在讓我們一起來看看吧!

    1、只講一種。

    2、Ext的extend函數采用的就是其中的混合方式。

    3、混合方式就是采用apply()方法和原型鏈兩種方式實現繼承。

    4、Ext.onReady(function(){  var b1 = { p1:"p1 value", p2:"p2 value", f1:function(){alert(this.p1)}, f2:function(){alert(this.p2)} }; var b2 = new Object(); b2.p1 = "b2 value"; Ext.apply(b2,b1); b2.f1(); // 這個挺有意思,不僅屬性會復制,連b1中的f1方法也可以被復制和使用      // ( 有點費話,因為f1和f2就是以屬性的形式生命的 ) b2.f2(); //會使得b2中包含一個p3的屬性,值為"p3 value"。

    5、 Ext.apply(b2,b1,{p3:"p3 value"});//比b1要多了一個p3屬性 alert(b2.p3) }); 可以看到其中的變量可以是以“對象”的形式存在的, 在其中的變量,和函數的形式都是以健值對的形式出現的。

    6、其中函數也是以這種形式,可以先定義b2,再用Ext.apply()去使之繼承applyIf方法的功能跟apply一樣,只是不會拷貝那些在目標對象及源對象都存在的屬性。

    7、比如把前面演示apply方法的代碼改成applyIf,如下:Ext.apply(b2,b1,{p3:"p3 value"}); alert(b2.p3);由于b2中已經存在了p2屬性,因此,b2.f1()方法中引用this.p2的時候,得到的是"b2 value",而不是在b1中定義的"p2 value"。

    本文到此分享完畢,希望對大家有所幫助。

  • 成人app