目前学习到JavaScript的原型部分,笔记如下,供以后参考学习,也希望能帮助到其他的人。
- 神秘对象针对构造函数成为“原型属性”
- 神秘对象就是构造函数的原型属性
- 简称原型
- 神秘对象与构造函数所创建出来的对象也有一定的关系
- 神秘对象针对构造函数所创建出来的对象称为“原型对象”
- 简称原型
- 对象继承自其原型
- 构造函数创建出的对象 继承自 构造函数的原型属性
- 构造函数创建出的对象 继承自 该对象的原型属性
- 构造函数所创建出来的对象与构造函数的原型属性表示的对象是两个不同的对象
- 原型中的成员可以直接被实例对象所使用
- 也就是说实例对象直接‘含有’原型中的成员
- 因此,实例对象继承自原型
- 这样的继承就是 ‘原型继承’
function Person(){}
var p = new Person();
Person.prototype.good = function(){alert('good')}
p.good();
如上代码,在内存中的运行过程如图
原型的使用方法
(1)利用对象的动态特性
构造函数.prototype.xxx = vvv
(2)直接将原型对象替换掉(这样写内存中会有两个原型对象副本)
构造函数.prototype = {
//方法
};
贴代码
function Person(name,age,gender){
this.name = name;
}
Person.prototype.sayHello = function(){
console.log(this.name + '你好');
}
var p1 = new Person('aa');
Person.prototype = {
sayHello:function(){
console.log(this.name + '你不好');
}
};
var p2 = new Person('bb');
p1.sayHello();
p2.sayHello();
执行结果:
aa你好
bb你不好
不懂的可以画图看看,一画图就明白了。