一般变量放构造函数里, 常量放prototype中
function Car(opt) {
this.brand = opt.brand
this.color = opt.color
this.displacement=opt.displacement
}
Car.prototype = {
price: '50000',
yougai:'上汽提供',
brand :'北京'
}
function Per(opt) {
this.name = opt.name
this.age =opt.age
this.income = opt.imcome
this.selectCar = function () {
var car = new Car(opt.carOpt)
console.log(this.name + '挑选了排量:' + car.displacement, '颜色:' + car.color, '品牌:' + car.brand, '价钱:' + car.price, '油盖供应商:' + car.yougai+'的车')
}
}
var person = {
name: '约翰',
age: '14',
income: '10000',
carOpt: {
brand:'现代',
color:'red',
displacement:'122'
}
}
var per = new Per(person)
per.selectCar()
结果:约翰挑选了排量:122 颜色:red 品牌:现代 价钱:50000 油盖供应商:上汽提供的车
注:1.原型prototype是function对象的一个属性,是个对象
2.prototype是定义构造函数构造出来的每个对象公共祖先,所有被构造函数构造出的对象都可以继承原型上的属性和方法
3构造函数中有属性或方法,就不去调用prototype原型上的属性和方法