我一直在为自定义布局脚本创建自己的库。为了便于使用,我试图模仿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
获取其元素这是接近这个的正确方法吗?或者这是我提出的一种被黑客攻击的方式,有一些直接的方法可以做到这一点吗?
答案 0 :(得分:1)
// 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();
答案 1 :(得分:0)
您的问题的简短版本是您正在寻找链接您的功能的能力。
这可以通过从每个函数返回相关对象来实现。如果函数没有其他返回值,则只返回this
变量,将控制权传递给调用者。