我一直在尝试找到一种方法,以与jQuery类似的方式将这些方法链接在一起。这是我的意思的一个例子:
(function() {
window.foo = function foo( id ) {
if( window == this )
return new foo( document.getElementById( id ) );
this.alert = function() {
alert( object.value );
}
}
}());
foo('input').alert();
正如您所看到的,我想使用作为alert函数的一部分传递给类的对象,但我不想通过this.object = id
将它存储在类中,然后执行alert( this.object.value );
这会是一种优雅的方式吗?
答案 0 :(得分:4)
jQuery只通过从许多方法返回相同的jQuery对象来链。您的方法并不总是返回值,因此它不会可靠地链接。如果你总是让它返回相同类型的值,链接可能会开始变得有意义。
window.foo = function foo( id ) {
if( window === this )
return new foo( document.getElementById( id ) );
this.alert = function() {
if (this.value) alert( this.value );
}
return this;
}
foo('input').alert();
答案 1 :(得分:-1)
您不需要在对象中存储引用,因为您已将其作为id
。
this.alert = function() {
alert(id.value);
return this;
}