// 什么时候用到 原型,什么时候用构造器
// 混合使用
function Aa(name,age){
/* this.name = 'xxx';
this.age = 99;*/
this.name = name;
this.age = age;
/* this.action = function(){
console.log(aa.name);
}*/
}
Aa.prototype.action = function(){
console.log(this.name);
};
// 如果是一万个,可能会有内存溢出
var a = new Aa('fff',34);
a.action();
var b = new Aa("ffx",340);
b.action();
设置原型属性 修改原型属性
function Person(){
};
Person.prototype.name = 'fxb';
Person.prototype.age = 24;
Person.prototype.action = function(){
console.log(this.name);
};
var person1 = new Person();
person1.action();
// 修改原型 不常用
person1.__proto__.name = 'fefefefe';
var person2 = new Person();
// name 如果有自己的name属性,那就先用自己的属性,不然就用原型属性
person2.name = 'fff';
person2.action();
// 检测实例是否属于原型
// 检测实例是否属于原型
console.log(Person.prototype.isPrototypeOf(person1));
// 什么时候用到 原型,什么时候用构造器
// 混合使用
// 什么时候用到 原型,什么时候用构造器
// 混合使用
function Aa(name,age){
/* this.name = 'xxx';
this.age = 99;*/
this.name = name;
this.age = age;
/* this.action = function(){
console.log(aa.name);
}*/
}
//共用的用原型
Aa.prototype.action = function(){
console.log(this.name);
};
// 如果是一万个,可能会有内存溢出
var a = new Aa('fff',34);
a.action();
var b = new Aa("ffx",340);
b.action();
继承
// 继承
function Action(){};
Action.prototype.dome = function(){
console.log("wode");
};
function Son(){};
Son.prototype = new Action();
var s = new Son();
s.dome();
实例 构造器 原型