构造器是什么? Object构造器用于创建特定类型的对象,同时接受参数,以在第一次创建对象时,设置成员属性和方法的值 都有哪些构造器可以使用? 1 基本Constructor(构造器)(有点问题) f
构造器是什么?
Object构造器用于创建特定类型的对象,同时接受参数,以在第一次创建对象时,设置成员属性和方法的值
都有哪些构造器可以使用?
1 基本Constructor(构造器)(有点问题)
function Car(modal, year, miles) { this.modal = modal; this.year = year; this.miles = miles; this.toString = function () { return this.modal + ' has done ' + this.miles + ' miles'; }}let civic = new Car('Honda Civic',2009,20000);let mondeo = new Car('Ford Mondeo',2010,5000);console.log(civic.toString()); //Honda Civic has done 20000 milesconsole.log(mondeo.toString()); //Ford Mondeo has done 5000 miles
toString()方法在没创建一个Car的实例时,就重新定义一次,这种方法应该是在实例之间共享的,于是,可以使用下面的带原型的构造器
2 带原型的Constructor(构造器)
function Car(modal, year, miles) { this.modal = modal; this.year = year; this.miles = miles;}Car.prototype.toString = function () { return this.modal + ' has done ' + this.miles + ' miles';}let civic = new Car('Honda Civic',2009,20000);let mondeo = new Car('Ford Mondeo',2010,5000);console.log(civic.toString());console.log(mondeo.toString());
这样,toString()方法就可以在Car的所有对象之间共享
参考资料:
《Javascript 设计模式》 【美】Addy and Osmani