function Person(name,age){
this.name=name;
this.age=age;
this.sayHi=function(){
console.log("您好");
}
}
var per1 = new Person("小白",20);
var per2 = new Person("小红",18);
per1.sayHi();
per2.sayHi();
console.log(per1.sayHi==per2.sayHi);
//false;不是同一个方法,因为每一个都有自己的对应空间
for(var i = 0 ;i<100 ; i++){
var per = new Person("小白",20);
per.sayHi();
}
<!--将会开辟100个空间这就造成了数据不能共享,浪费了大量的空间-->
function mySay(){
console("您好");
}
function Person(name,age){
this.name=name;
this.age=age;
this.sayHi=mySay;
}
var per1 = new Person("小白",20);
var per2 = new Person("小红",18);
per1.sayHi();
per2.sayHi();
console.log(per1.sayHi==per2.sayHi);//true
<!--可以节省空间,减少空间浪费问题。
缺点:容易造成命名冲突问题
解决方法:通过原型解决
-->
2 原型对象的作用之一
实现数据共享,节省内存空间
function Person(name,age){
this.name=name;
this.age=age;
}
//通过原型来添加方法
Person.prototype.sayHi(){
console.log("您好");
};
var p1 = new Person("小白",20);
var p2 = new Person("小红",18);
console.log(p1==p2)//false;
console.log(p1.sayHi=p2.sayHi);//true