jquery里面extend的this指向

图片描述

当我调用$.extend({'wudi':'zhaaa'})之后,我也没有对jquery做什么实例化啊?怎么此时的this就是那个jquery函数呢?我的问题就是这个this在哪生成的?我知道答案了,好久没接触都忘了。。。惭愧啊

阅读 3.2k
2 个回答

jQuery.extend 调用的时候,this是指向jQuery对象的,所以这里扩展在jQuery上。
而jQuery.fn.extend 调用的时候,this指向fn对象,jQuery.fn 和jQuery.prototype指向同一对象,扩展fn就是扩展jQuery.prototype原型对象。

这里的静态方法和实例方法共享同一个extend方法,要明白一个道理,js中谁调用方法this就指向谁,如题,$.extend({'wudi':'zhaaa'})即Jquery调用的extend方法,那么this就指向jquery。

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