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

来源:3-4 改进代码--JS第二次尝试

奔跑的读书人

2017-08-22 18:58

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

写回答 关注

2回答

  • 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

    有道理!

星级评分原理和实现(上)

本课程主要讲解如何使用不同的方式来实现星级评分的效果.

25809 学习 · 109 问题

查看课程

相似问题