Ext 介紹入門之 EXT 內建函數對象

來源:互聯網
上載者:User

在JavaScript中,函數是可以帶有方法的對象。Ext庫提供的擴充會對Function對象——包括內建的函數、你定義的函數,這些都會繼承。添加這些的方法能方便地綁定函數到特定的範圍。

範圍的重要性

在JavaScript中,你引用一函數,使之成為handler,和在C中使用函數指標有相類似的方式。這意味著預設情況下沒有對象是綁定到對象的,並且this這個變數會是瀏覽器的window對象。如果要寫OO的Javascript,那麼這將會引起很多的誤解和錯誤的出現。下列的 Function方法允許你綁定一個對象到其所在的函數中(其this的指向引用),連同參數列表綁定到函數中。

委託和回調

createDelegate

createDelegate(API參考)允許你將對象綁定一個在其範圍下的函數,亦可將特定的多個參數,寫成數組傳入到那個函數中去。可選地,這需要一個參數來指定是否將參數列表傳入到這個數組中去。如果這個第三的參數沒有傳入,數組將是整個的參數列表。

例子:

var fn = func1.createDelegate(scope, [arg1,arg2], true)
fn(a,b,c) === scope.func1(a,b,c,arg1,arg2);
 
var fn = func1.createDelegate(scope, [arg1,arg2])
fn(a,b,c) === scope.func1(arg1,arg2);
 
var fn = func1.createDelegate(scope, [arg1,arg2], 1)
fn(a,b,c) === scope.func1(a,arg1,arg2,b,c);

createCallback

createCallback (API參考) 允許你將多個參數綁定到一個函數。指定參數作為createCallback的變數便可。

例子:

var fn = func1.createCallback(arg1, arg2);
fn() === func1(arg1, arg2)

AOP功能

EXT庫亦提供一些基礎性的 aspect-oriented programming(AOP面向切面編程)機制。這意味著你選擇的函數可在另一函數的之前或之後被調用,並根據外部結果動態改變執行流程鏈。當你欲擴充Ext內建函數的行為(behavior)時,利用該機制可無須繼承或重載原Ext版本。使用下列兩個方法,你可在某一函數之前或之後加上你想實現的功能。

createInterceptor

createInterceptor (API參考)允許你指定一個函數在這個函數之前調用。原函數的所有參數都會傳入給它。如果它返回false,原函數將不會被調用。範圍的參數可選地使用。

createSequence

createSequence (API參考)允許你指定一個函數在這個函數之後調用。原函數的所有參數都會傳入給它。範圍的參數可選地使用。

延時執行

Ext提供了一個便捷的方法來封裝JavaScript內建方法setTimeout。defer函數(API參考)允許你在某一定時間間隔之後執行函數,而且可指定執行所在的範圍,連同多個參數的傳入一同被調用。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.