constructor的实例应用

了解清楚constructor和prototype的关系

by kixi

CSS

/*
清晰网
kixi.com.cn
从javascript开始
*/

JavaScript

//JS 会为函数 F 的prototype对象额外添加一个constructor属性,并且该属性保存指向函数F的一个引用

function F() {
    // some code
}
var f = new F();

//我们可以利用这个特性来完成下面的事情:
//对象类型判断,如
if (f.constructor === F) {
    alert(true);          // true
}

if (f.constructor === F.prototype.constructor) {
    alert(true);          // true
}

//其实constructor的出现原本就是用来进行对象类型判断的,但是constructor属性易变,不可信赖。我们有一种更加安全可靠的判定方法:instanceof 操作符。下面代码仍然返回true

if (f instanceof F) {
    alert('清晰网--kixi.com.cn');   //清晰网kixi.com.cn
}

//原型链继承,由于constructor存在于prototype对象上,因此我们可以结合constructor沿着原型链找到最原始的构造函数