看bootstrap源码的时候,有个this不明白啊?

// Old button  
+function($) {  
  $.fn.button = function() {  
    alert('Old button')  
  }   
}(window.jQuery)  
  
// Bootstrap button  
+function($){  
  // 将原先的button插件对象赋值给一个临时变量old  
  var old =  $.fn.button  
  
  $.fn.button = function() {  
      alert('Bootstrap button')  
  }  
  
  // 执行该函数,恢复原先的button定义,并返回Bootstrap定义的button插件  
  $.fn.button.noConflict = function () {  
    $.fn.button = old  
    return this  
  }  
  
}(window.jQuery)  
  
// <span style="font-family: Helvetica, Tahoma, Arial, sans-serif; white-space: normal; background-color: #ffffff;">作用域</span>外我们可以灵活使用两个button插件  
$.fn.button = $.fn.button.noConflict()  
$('a').button() // alert('Bootstrap button')  
  
$.fn.button.noConflict()  
$('a').button() // alert('Old button')  

看的是这一段代码,

 $.fn.button.noConflict = function () {  
    $.fn.button = old  
    return this  
  }  

这里的this指的是谁啊?为什么指的是它?好不懂求指点。

我看得博客地址是Bootstrap 源码解析

求指点迷津!

这个问题我已经搞明白了,谢谢大家!

阅读 2.9k
3 个回答

这个函数内部的this应该指向它的外层对象

如:$('.btn').button(); 那个this指向的是$('.btn')这个对象

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题