首页 > 代码库 > JavaScript 创建对象
JavaScript 创建对象
有三种基本的方式可以创建对象: 工厂模式、构造函数模式和原型模式
工厂模式:
function createPerson(name, age) { var o = new Object(); o.name = name; o.age = age; o.getName = function() { alert(this.name); }; return o; } var person1 = createPerson(‘james‘, 18);
构造模式
function Person(name, age) { this.name = name; this.age = age; this.sayName = function() { alert(this.name); }; } var person1 = new Person(‘james‘, 18);
原型模式
function Person() {}; Person.prototype.name = ‘james‘; Person.prototype.age = 18; Person.prototype.getName = function() { alert(this.name); }; var person1 = new Person();
理解原型对象:
当定义构造函数Person时,会自动生成一个Person的原型对象Person.prototype;
Person.prototype中同时自动生成属性constructor指向Person;
注意: 如果用对象字面量重新定义原型对象时,需要添加属性constructor指向构造函数;
工厂模式每次都会生产出一个实例返回,类和封装的实现没有达到;
构造函数模式每次新建一个实例,其中的共通方法(函数)都会产生一个新的实例;
原型模式未实现每个实例得私有属性;
因此,最好的创建对象的模式为:
组合使用构造函数模式和原型模式
function Person(name, age) { this.name = name; this.age = age; this.friends = []; } Person.prototype = { constructor: Person, sayName: function() { alert(this.name); } }; var Person1 = new Person(‘james‘, 18);
JavaScript 创建对象
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。