function A() {}
const a = new A()
new 到底做了什么呢?
a = {}; a.__proto__ = A.prototype-
a = A.call(a)这里需要解释一下,如果构造函数里没有return语句或者return的不是object,那么会默认返回构造函数内部的this,与普通函数不同的地方。
2016/08/23
function A() {}
console.log(A.prototype.constructor === A) //true
我一直没明白,为何上面会输出true。
好吧,反正我是真得没弄明白,也许JavaScript就是这样设计的呢?
我就按照下面的解释来麻醉自己了:
function A() {}
a = new A()
/*
此时:
a.constructor == A
a是没有constructor属性的,其实是a.__proto__.constructor == A
而a.__proto__等同于A.prototype
所以我推测是JavaScript为了实现上述等式,当我们定义一个函数的时候,内部进行了下列操作:
function A() {}
A.prototype = {
constructor: A
}
*/
参考:








网友评论