javascript对象内方法的原型是对象自己?

首先要说明这是完全可行的,因为jquery中就是这么做的
图片描述

但我总是理解不了。哪位大神能说一下自己的见解,总觉得这样不对或者别扭

阅读 3k
2 个回答

首先,之所以

var jQuery = function(selector,context){return new jQuery.fn.init(selector,context,rootjQuery);}

是为了我们直接jQuery('div')就能获得jQuery对象,而不用按常规的 new JQ('div') 每次 要用一个就是自己new那么麻烦。

但是呢,既然这么做了,那我总得保证得到的是一个jQuery实例吧,这样的话,init方法要作为一个构造函数的话,其原型prototype应该跟jQuery的原型一致,也就是指向同一个,这样我init new了之后,得到的对象才能调用到jQuery里的方法呀~

多琢磨一下 原型链?虽然我也觉得有点绕,哈哈

最近在看网易云课堂视频关于jquery源码讲解,大概就是这么个解释,有兴趣也可以去看看 妙味课堂的

基本网上任何分析JQ源码的系列,第一篇就会讲这个,你可以去看看。

另外,总觉得别扭,那你就把你JQ最常用的写法列出来,然后在JQ源码中去掉你认为别扭的地方,看看是什么结果,你一下就会明白人家为什么要这么写了。

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