isJ*_*tMe 55 javascript jquery frameworks
我不是问链接的合适语法是什么,我知道它可能是这样的:
$('myDiv').removeClass('off').addClass('on');
Run Code Online (Sandbox Code Playgroud)
但是我真的很好奇理解它的内部工作,据我所知,链接是对其他着名框架的优势之一,但是对于像我这样的新手程序员来说,我们有很多抽象,我敢肯定有人出来在那里可以为我提供一个解释,让我了解链是如何工作的.
谢谢!
use*_*716 64
如果您有一个具有某些方法的对象,如果每个方法都返回一个带方法的对象,您只需从返回的对象中调用一个方法即可.
var obj = { // every method returns obj---------v
first: function() { alert('first'); return obj; },
second: function() { alert('second'); return obj; },
third: function() { alert('third'); return obj; }
}
obj.first().second().third();
Run Code Online (Sandbox Code Playgroud)
演示: http ://jsfiddle.net/5kkCh/
Tej*_*ejs 25
它所做的就是返回this方法完成时的引用.以这个简单的对象为例:
var sampleObj = function()
{
};
sampleObj.prototype.Foo = function()
{
return this;
};
Run Code Online (Sandbox Code Playgroud)
您可以整天链接这些调用,因为您返回对以下内容的引用this:
var obj = new sampleObj();
obj.Foo().Foo().Foo().Foo() // and so on
Run Code Online (Sandbox Code Playgroud)
jQuery只是执行一个操作,然后返回this.
基本上第一个函数调用$('myDiv')返回一个jQuery对象,然后每个后续调用返回相同的一个.
严格地说,
var $ = function(selector) {
return new jQuery(selector);
};
jQuery.prototype.removeClass = function(className) {
// magic
return this;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25722 次 |
| 最近记录: |