面向对象编程的第一步,就是要生成对象。前面说过,对象是单个实物的抽象。通常需要一个模板,表示某一类实物的共同特征,然后对象根据这个模板生成。
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)
