1.
我们可以利用这个特性来完成下面的事情:
对象类型判断,如if(f.constructor === F) {// do sth with F}123复制代码
其实 constructor 的出现原本就是用来进行对象类型判断的,但是 constructor 属性易变,不可信赖。我们有一种更加安全可靠的判定方法:instanceof 操作符。下面代码
仍然返回 trueif(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