问题描述(有点长)
2.0.3版本中的jquery构造函数的定义方式(抽象版)
function A () {
return new A.fn.init()
}
A.fn = A.prototype= {
init:function(){}
}
A.fn.init.prototype = A.prototype
A() // init{}
3.4.1版本中的jquery构造函数的定义方式(抽象版)
function B () {
return new B.fn.init()
}
B.fn = B.prototype= {
}
var init = B.fn.init = function(){}
init.prototype = B.fn
B() // B.fn.init {}
问题:为什么第一种返回的是init{},第二种返回的是B.fn.init {}?
我用最简单的方法定义构造函数,实例化时,返回的是构造函数的名字,如下代码所示。
function C(){}
new C() // C{}
但是在前面两种方法都是以X.fn.init作为构造函数,第一种却返回init{},第二种才返回预期的样子,这是为什么,求大神解惑!!