1.constructor的字面意思就是构造。它是对象的一个属性,它对应的值是该对象的“构造者”
//一、构造函数实例化的对象的constructor function Cmf(n,m){ this.n=n; this.m=m; this.mn=function(){ return this.n+'|'+this.m } } var cmf=new Cmf('c',"q") console.log(cmf.mn()) // c|q console.log(cmf.constructor) // Cmf(n, m) //这里可以看出Cmf()实例化的cmf()对象,这个对象的constructor是它的固有属性。 //二、基本数据类型的constructor var yi=154 console.log(yi.constructor)// Number() var li="qdz" console.log(li.constructor)// String()
2.1原型的constructor
function Cmf(n,m){ this.n=n; this.m=m; this.mn=function(){ return this.n+'|'+this.m } } Cmf.prototype.jn=function(){ return this.m+"!"+this.n } var cmf=new Cmf('c',"q") console.log(cmf.jn()) //q!c console.log(Cmf.prototype) // Cmf { jn=function()} console.log(typeof Cmf.prototype) // object console.log(Cmf.prototype.constructor) // Cmf(n, m) //上面看出构造函数原型的constructor指向了该构造函数。怎么理解呢,构造函数的原型是个Obj,这个Obj是由什么构成的呢?是它的构造者 构造函数。
2.2 基本数据类型的constructor
String.prototype.cf=function(n){ //给String.prototype这个obj添加方法cf,字符串乘法 return new Array(n+1).join(this) } var d="d" console.log(d.cf(5)) //ddddd console.log(String.prototype) // String { cf=function()} console.log(String.prototype.constructor) // String() //类似于构造函数