0

我对jquery 1.7.3源代码中的“this”关键字感到非常困惑。下面显示了一些代码片段:

jQuery.fn=jQuery.prototype={构造函数:jQuery,init:function(选择器、上下文、rootjQuery){var匹配,elem,ret,doc;//句柄$(“”)、$(null)或$(未定义)if(!选择器){返回此;}//句柄$(DOMElement)if(selector.nodeType){this.context=this[0]=选择器;this.length=1;返回此;}

if(!选择器){返回此//为什么这里不只有一个“回程”?//“this”是指jQuery对象吗?//OTOH,这个问题是关于它为什么返回“this”。}

2个答案2

重置为默认值
2

返回此允许可链接插件调用,

$(随便).plugin1().plung2()等

如果你不这样做把这个还给我在插件中,你将无法链接它&链接很快,链接很酷您希望在jquery代码中尽可能多地链接

回答你的评论:不,你会的(内部插件定义):

if($(“#div1”).get(0)){//对$执行任何操作(“#div1”)}返回此;

把这个还给我在插件定义的末尾无论何种情况,都无需归还

2
  • 如果我在项目中不使用jquery,我想检查元素是否具有ID调用“div1”,我通常这样写:if(!document.getElementById('div1'))返回;.在这种情况下,我应该写吗如果(!document.getElementById('div1'))返回此? 评论 2013年1月30日10:05
  • 不管之前发生了什么,这实际上都是在插件定义的末尾出现的;在您的示例中,实际上return应该只出现一次-请参阅答案编辑
    – 米卡昆
    评论 2013年1月30日10:10
1

对,是jquery对象并返回使函数可链接。

//连锁$(“#person”).slideDown(“慢”).addClass(“分组”).css('marg-left','11px');//无链接$('#person').slideDown('slow');$('#person').addClass('grouped');$('#person').css('marg-left','11px');

你看,链接方法帮助我们更快更漂亮地编写代码。

如果您想进一步研究:http://en.wikipedia.org/wiki/Method链

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.