问答详情
源自:3-4 改进代码--JS第二次尝试

return this.each(function() { //为什么是this而不是$(this) init(this,num); });

return this.each(function() {  //为什么是this而不是$(this)    init(this,num); });

提问者:奔跑的读书人 2017-08-22 18:58

个回答

  • Chris012
    2017-08-23 03:07:24
    已采纳

    因为封装对象方法的插件是写在 $.fn.extend({ /*代码省略*/}); 里面的,你调用的时候肯定是基于jQuery对象调用的,这里的调用是$("#rating2").rating(4);, 所以函数中的this引用的是 '$("#rating2")' 这个jQuery对象。

    你可以自己试验下,在函数内部打印this 和 $(this),控制台日志上返回的都是一个数组,证明他们引用的都是jQuery对象。两种写法都可以正常运行。

  • 请_写信给我
    2017-08-24 10:28:55

    有道理!