面向对象编程的第一步,就是要生成对象。前面说过,对象是单个实物的抽象。通常需要一个模板,表示某一类实物的共同特征,然后对象根据这个模板生成。
2.1构造函数的特点
特点:1.首字母大写
2.函数内部使用this关键字,谁new(实例化)就指谁
3.使用this关键字给对象添加属性
4.必须使用new关键字,去生成一个对象
实例 —>new出来的对象 /
/ 构造函数:构造一个类(对象)的函数
对象
类 抽象的对象
function Person(name,age){
this._name=name;
this._age=age;
}
var p=new Person("li",10);
console.log(p);
console.log(Person("li",10));
// Person就是构造函数。
2.2构造函数的缺点
通过构造函数为实例对象定义属性,虽然很方便,但是有一个缺点。
缺点:同一个构造函数的多个实例之间,无法共享属性,从而造成对系统资源的浪费。
<script>
function Person(name,age){
this.name =name;
this.age = age;
this.eat="水果"; //eat是共享属性
}
var p =new Person("li",19)
var zhang =new Person("zhang",20)
console.log(p)
console.log(zhang)
解决办法:共有的属性或者共有的方法我们可以放在原型对象上
JavaScript 的原型对象(prototype)
function Person(name,age){
this.name =name;
this.age = age;
}
Person.prototype.eat = "水果"
var p =new Person("li",19)
var zhang =new Person("zhang",20)
console.log(p)
console.log(zhang)