jQuery.fn = jQuery.prototype = {
// The current version of jQuery being used
jquery: core_version,
constructor: jQuery // ??这里的疑惑
}
上面是jQuery的部分源码,我想知道为什么给jQuery的原型对象上的constructor重新指向jQuery?不重新指向的话会出现什么问题?
这里把jQuery.prototype重新赋值了,所以原来的jQuery.prototype.constructor
会被覆盖掉。如果jQuery失去constructor的话,就不能通过constructor
来构造一个同类型的新对象,也不能用来判断自己的类型。例如下面的代码:
Test = function () {
this.name = "hello";
}
Test.prototype = {};
var t1 = new Test;
var t2 = new t1.constructor;
console.log(t1.constructor === Object); // true
console.log(t2.name); // undefined
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。