1.
我们可以利用这个特性来完成下面的事情:
对象类型判断,如
if(f.constructor === F) {
// do sth with F
}123
其实 constructor 的出现原本就是用来进行对象类型判断的,但是 constructor 属性易变,不可信赖。我们有一种更加安全可靠的判定方法:instanceof 操作符。下面代码
仍然返回 true
if(f instanceof F) {
// do sth with F
}
2.
你要知道其他对象的constructor属性是从哪里来的,就比如var a = {}。a.constructor === Object,这里面a的constructor属性是从哪里来的,是js默认添加的吗,显然不是,a = {}可以看成是通过a = new Object(),实例化之后a会有一个__proto__属性,他指向他构造函数的prototype,a本身是没有constructor这个属性的,他就会去他构造函数的prototype中去找,而Object的prototype中有constructor这个属性,且指向他本身,所有你才可以看到a.constructor === Object