JavaScript 创建对象--组合使用构造函数模式和原型模式
2017-12-22 17:10
911 查看
组合使用构造函数模式和原型模式:
创建自定义类型的最常见方式,就是组合使用构造函数模式与原型模式。构造函
数模式用于定义实例属性,而原型模式用于定义方法和共享的属性,这样就使得每
个实例都会有自己的一份实例属性的副本,但同时又会共享着对方法的引用,最大
限度地节省了内存,而且这种模式还支持想构造函数传递参数。
例1:
function Person(name,age){
this.name=name;
this.age=age;
this.friends=["Icarid","Chris"];
}
Person.prototype={
constructor:Person,
//constructor是保存对函数对象的指针
getName:function(){
alert(this.name)
}
}
var person1=new Person("Joe",23);
var person2=new Person("Leo",35);
person1.getName();
//Joe
person2.getName();
//Leo
alert(person1.getName==person2.getName);
//true,说明两个实例的方法的指针相同
alert(person1.friends);
//Icarid,Chris
person1.friends.push("John");
//向数组中传递参数,添加到数组末尾
alert(person1.friends);
//Icarid,Chris,John
alert(person2.friends);
//Icarid,Chris,说明实例的属性都是分开的,即互不影响
使用构造函数与原型混合的模式,是ECMAScript中使用最广泛,认同度最高的一种创建自定义
类型的方法。
创建自定义类型的最常见方式,就是组合使用构造函数模式与原型模式。构造函
数模式用于定义实例属性,而原型模式用于定义方法和共享的属性,这样就使得每
个实例都会有自己的一份实例属性的副本,但同时又会共享着对方法的引用,最大
限度地节省了内存,而且这种模式还支持想构造函数传递参数。
例1:
function Person(name,age){
this.name=name;
this.age=age;
this.friends=["Icarid","Chris"];
}
Person.prototype={
constructor:Person,
//constructor是保存对函数对象的指针
getName:function(){
alert(this.name)
}
}
var person1=new Person("Joe",23);
var person2=new Person("Leo",35);
person1.getName();
//Joe
person2.getName();
//Leo
alert(person1.getName==person2.getName);
//true,说明两个实例的方法的指针相同
alert(person1.friends);
//Icarid,Chris
person1.friends.push("John");
//向数组中传递参数,添加到数组末尾
alert(person1.friends);
//Icarid,Chris,John
alert(person2.friends);
//Icarid,Chris,说明实例的属性都是分开的,即互不影响
使用构造函数与原型混合的模式,是ECMAScript中使用最广泛,认同度最高的一种创建自定义
类型的方法。
相关文章推荐
- JavaScript之面向对象学习六原型模式创建对象的问题,组合使用构造函数模式和原型模式创建对象
- javascript创建对象——组合使用构造函数和原型模式
- JavaScript高级程序设计之面向对象的程序设计之创建对象之组合使用构造函数模式和原型模式 第6.2.4讲笔记
- javascript中组合使用构造函数模式和原型模式创建对象
- js中组合使用构造函数模式和原型模式创建对象
- 创建对象-组合使用构造函数和原型模式
- 在立即执行函数内组合使用构造函数模式和原型模式创建对象,实现模块化开发(以daterangepicker.js为例)
- js中组合使用构造函数模式和原型模式创建对象
- javascript中创建自定义类型的最常见的方式_组合使用构造函数模型和原型模式,动态原型模式
- JS创建对象之组合使用构造函数模式和原型模式
- javascript面向对象-组合使用构造函数和原型模式时在原型对象添加init函数
- 对象的创建方法之三---组合使用构造函数模式和原型模式(最常用的模式)
- 在JS中组合使用构造函数模式和原型模式创建对象
- Javascript---字面量创建对象、组合构造函数+原型模式、动态原型模式
- javascript创建对象之函数构造模式和原型模式结合使用(四)
- 组合使用构造函数模式和原型模式创建自定义类型
- JavaScript构造函数及原型对象 使用Object或对象字面量创建对象 工厂模式创建对象 构造函数模式创建对象 原型模式创建对象 构造与原型混合模式创建对象
- JavaScript面向对象 组合使用构造函数模式和原型模式
- JavaScript构造函数及原型对象 使用Object或对象字面量创建对象 工厂模式创建对象 构造函数模式创建对象 原型模式创建对象 构造与原型混合模式创建对象
- JavaScript构造函数及原型对象 使用Object或对象字面量创建对象 工厂模式创建对象 构造函数模式创建对象 原型模式创建对象 构造与原型混合模式创建对象