Javascript 系泊链
我不认为函数/方法应该返回void,而是应该返回Javascript 系泊链,javascript,mootools,method-chaining,Javascript,Mootools,Method Chaining,我不认为函数/方法应该返回void,而是应该返回this。这就是为什么我惊讶地发现这不起作用: $('buttonContainer').getElement('input').set('value', this.get('value') + ' '); 代码要做的是找到一个,它是id属性值为buttonContainer的元素的子元素,并在其值属性中添加两个空格字符。但是前面显示的代码错误,我不得不写: var input = $('buttonContainer').getElement
this
。这就是为什么我惊讶地发现这不起作用:
$('buttonContainer').getElement('input').set('value', this.get('value') + ' ');
代码要做的是找到一个
,它是id
属性值为buttonContainer
的元素的子元素,并在其值
属性中添加两个空格字符。但是前面显示的代码错误,我不得不写:
var input = $('buttonContainer').getElement('input');
input.set('value', input.get('value') + ' ');
难道MooTools没有办法将这两个独立的语句链接成一个吗?类似于我的第一个片段的内容?您所问的与链接无关
此
没有上下文,因此您的呼叫失败。您不满意的解决方案是您需要为其他值/属性编写它的方式,但对于这样的直接更改,请按以下方式编写:
$('buttonContainer').getElement('input').value += ' ';
你所问的与锁链无关
此
没有上下文,因此您的呼叫失败。您不满意的解决方案是您需要为其他值/属性编写它的方式,但对于这样的直接更改,请按以下方式编写:
$('buttonContainer').getElement('input').value += ' ';
MooTools不能为每个调用的方法动态地重新绑定
此。这是不可能的
您必须了解,对链的每个调用都在相同的范围内,因此此
保持不变。jQuery和所有其他框架都有同样的问题。如果要同时对一个元素执行两个操作,则必须将该对象存储在变量中,然后使用该变量引用该对象,就像在第二个示例中一样:
var input = $('buttonContainer').getElement('input');
input.set('value', input.get('value') + ' ');
这个
只能在作用域更改时更改(在JavaScript中,当您点击包含函数的大括号时总是如此)。这不是MooTools链接的限制。这是JavaScript在一般情况下的工作方式。MooTools不能为调用的每个方法动态地重新绑定此
。这是不可能的
您必须了解,对链的每个调用都在相同的范围内,因此此
保持不变。jQuery和所有其他框架都有同样的问题。如果要同时对一个元素执行两个操作,则必须将该对象存储在变量中,然后使用该变量引用该对象,就像在第二个示例中一样:
var input = $('buttonContainer').getElement('input');
input.set('value', input.get('value') + ' ');
这个
只能在作用域更改时更改(在JavaScript中,当您点击包含函数的大括号时总是如此)。这不是MooTools链接的限制。这是JavaScript在一般情况下的工作方式。@Andrew,我知道你想说什么,但在JS中你经常使用大括号(if
,for
,while
,switch
,try
),它唯一改变作用域的时候就是当大括号与函数关联时。@Doug:谢谢,我的小疏忽,我编辑了答案来纠正这个错误。@Andrew,我知道你想说什么,但在JS中你经常使用大括号(if
,for
,while
,switch
,try
),它唯一改变范围的时候就是当这些大括号与函数关联时。@Doug:谢谢,我的小疏忽,我已经编辑了答案来纠正这个错误。