[英]How can I create a selector like how jQuery has jQuery() or $()?
我一直在為自定義布局腳本創建自己的庫。 為了便於使用,我試圖模仿jQuery如何通過jQuery()公開其庫,這使得代碼非常容易閱讀和簡單。 我想出了一些有效但我不確定這是否是正確的方法。 不是將函數保持在內部,而是將所有函數“附加”到庫中。 無論如何,到目前為止對我有用的代碼如下:
slateUI = (function(slateID){
slateUI.ID = slateID;
return slateUI;
});
一個相關的函數看起來像這樣:
slateUI.doSomething = function(content)
{
//DID SOMETHING USING slateUI.ID
}
我對OOP很新,就像語言的功能一樣。 我相信有更好的方法來解決這個問題。 我遇到的問題是將Element傳遞給一個附加的函數調用,例如:
slateUI("#someSlate").doSomething(...)
從slateUI.ID獲取其元素
這是接近這個的正確方法嗎? 或者這是我提出的一種被黑客攻擊的方式,有一些直接的方法來做到這一點?
// function which returns a new SlateUI object (so we dont have to use the "new" keyword)
slateUI = function ( slateID ) {
return new SlateUI( slateID );
};
// class definition
function SlateUI ( slateId ) {
this.id = slateId;
}
// methods added to the class prototype (allows for prototypical inheritance)
SlateUI.prototype.someFunction = function() {
alert( this.id );
return this; // adding this line to the end of each method allows for method chaining
};
// usage
slateUI( 'someid' ).someFunction();
您的問題的簡短版本是您正在尋找鏈接您的功能的能力。
這可以通過從每個函數返回相關對象來實現。 如果函數沒有其他返回值,則只返回this
變量,將控制權傳遞給調用者。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.