就算不赋值的话,jquery.prototype.constructor不是也等于jquery么?
就算不赋值的话,jquery.prototype.constructor不是也等于jquery么?
在读<<JavaScript设计模式>>
继承部分章节时看到的译者注:
/*
* 译者注:定义一个构造函数时,其默认的prototype对象是一个Object 类型的实例,
* 其constructor属性会被自动设置为该构造函数本身。
* 如果手工将其prototype 设置为另外一个对象,
* 那么新对象自然不会具有原对象的constructor值,
* 所以需要重新设置其constructor 值。
*/
jQuery.fn.init.prototype = jQuery.fn;
通过原型传递解决问题,把jQuery的原型传递给jQuery.prototype.init.prototype
换句话说jQuery的原型对象覆盖了init构造器的原型对象
因为是引用传递所以不需要担心这个循环引用的性能问题
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
你说的对,但是你注意看源码,
prototype
是个对象字面量{}
。对象字面量的constructor
就不是jquery
了,所以需要重新指明。