jQuery中的init方法里面的return this;是否可以删除呢?

来源:2-1 对象的构建

E_MO

2015-12-28 16:44

因为init方法是被new出来的,实际上是新建了一个对象,那为何在init方法里面还要return一个this呢?

如果是其他的方法,可以理解为方便链式编程,那在实例化的时候return this;又有什么作用呢?

写回答 关注

4回答

  • 春秋先生
    2016-11-21 13:45:52
    已采纳

    如果使用 new $jQuery.fn.init(),那么init方法已经被当成构造函数使用,这时候可以删除renturn  this写法,因为在类的实例化过程中,构造函数会默认返回this。  如果是普通调用init方法的时候,return this的写法是可以让$jQuery.fn对象返回并支持实例方法链式操作。这里手动加上return this的写法很有深意。

    E_MO

    现在明白了,这个只是一个保守的写法而已

    2016-12-02 12:35:38

    共 1 条回复 >

  • 慕沐1418957
    2016-07-30 14:24:17

    构造函数不需要显示的返回值。使用new来创建对象(调用构造函数)时,如果return的是非对象(数字、字符串、布尔类型等)会忽而略返回值;如果return的是对象,则返回该对象。个人感觉如若return this的话要不要都可以

  • paraofheaven
    2016-04-01 16:14:32

    init()没有参数时,实际上this返回的是jQuery的原型对象

  • qq_行者_28
    2016-01-04 13:06:10

    函数默认的返回值是空,没有return this就不能把name返回给调用的对象,,是不是这意思

jQuery源码解析(架构与依赖模块)

由浅入深地剖析jQuery库的设计与实现,揭开框架背后的秘密

84047 学习 · 280 问题

查看课程

相似问题