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);
时间: 2024-10-19 02:06:58

JavaScript 创建对象的相关文章

Javascript 创建对象方法的总结(每天一些学习真的很快乐)

使用Javascript创建对象的方法有很多,现在就来列举一下: 1. 使用Object构造函数来创建一个对象,下面代码创建了一个person对象,并用两种方式打印出了Name的属性值. var person = new Object(); person.name="kevin"; person.age=31; alert(person.name); alert(person["name"]) 2. 使用对象字面量创建一个对象:不要奇怪person["5&

Javascript创建对象方法

1.工厂模式:及时由一个工厂类根据传入的参数决定生产那种产品类 function createPerson(name,age,job) { var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = function() { alert(this.name); } return o; } var person = createPerson("xiaoqiang",12,"student&

Javascript 创建对象方法的总结

最近看了一下<Javascript高级程序设计(第三版)>,这本书很多人都推荐,我也再次郑重推荐一下.看过之后总得总结一下吧,于是我选了这么一个主题分享给大家. 使用Javascript创建对象的方法有很多,现在就来列举一下: 1. 使用Object构造函数来创建一个对象,下面代码创建了一个person对象,并用两种方式打印出了Name的属性值. var person = new Object(); person.name="kevin"; person.age=31; a

【译】JavaScript 创建对象: 方法一览与最佳实践

本文是我在众成翻译上认领并翻译的:JavaScript 创建对象: 方法一览与最佳实践 在JavaScript中“创建对象”是一个复杂的话题.这门语言提供了很多种创建对象的方式,不论新手还是老手都可能对此感到无所适从,不知道应该选择哪一种.不过,尽管创建对象的方法很多,看上去语法差异也很大,但实际上它们的相似性可能比你所以为的要多.本文将带领你踏上一段梳理对象创建方法的旅程,为你揭示不同方法之间的依赖与递进关系. 对象字面量 我们的第一站毫无疑问就是创建对象最简单的方法,对象字面量.JavaSc

JavaScript 创建对象的七种方式

转自:xxxgitone.github.io/2017/06/10/JavaScript创建对象的七种方式/ JavaScript创建对象的方式有很多,通过Object构造函数或对象字面量的方式也可以创建单个对象,显然这两种方式会产生大量的重复代码,并不适合量产.接下来介绍七种非常经典的创建对象的方式,他们也各有优缺点. 工厂模式 1 function createPerson(name, job) { 2 var o = new Object() 3 o.name = name 4 o.job

理解JavaScript创建对象的不同模式

ps:前端渣第一次写博客,排版什么的还不清楚,后续会慢慢改进. 时隔两个月再次温习前端,发现很多东西都忘了,昨天刚看到constructor和prototype一脸懵逼,回去查资料和看书,对对象的理解又比从前啃书的时候更加深入.本文仅对JavaScript创建对象的各种模式进行辅助性的理解,有错误的地方欢迎指正. 创建对象 字面量对象 var person = { name:"myName", age:"18", sayName:function(){ alert(

javascript创建对象的相关问题

javascript创建对象的方法有很多种,一般来说,推荐使用对象字面量来创建对象. 对象构造函数捕捉 使用new Object来创建对象,可能会带来一些问题: var o = new Object(); console.log(o.constructor === Object);//true var o = new Object(1); console.log(o.constructor === Object);//false console.log(o.constructor === Num

Javascript创建对象几种方法解析

Javascript创建对象几种方法解析 Javascript面向对象编程一直是面试中的重点,将自己的理解整理如下,主要参考<Javascript高级程序设计 第三版>,欢迎批评指正. 通过字面量形式,创建对象: var person_1 = { name: "userName", age: 20 } 工厂模式创建对象 通过一个构造函数接收参数的方式构造对象,可无数次调用这个函数,通过改变参数构造不同的对象 function createPerson(name,age){

补充:JavaScript 创建对象的七种方式

JavaScript创建对象的方式有很多,通过Object构造函数或对象字面量的方式也可以创建单个对象,显然这两种方式会产生大量的重复代码,并不适合量产.接下来介绍七种非常经典的创建对象的方式,他们也各有优缺点. 工厂模式 1 function createPerson(name, job) { 2 var o = new Object() 3 o.name = name 4 o.job = job 5 o.sayName = function() { 6 console.log(this.na

JavaScript创建对象(三)——原型模式

在JavaScript创建对象(二)--构造函数模式中提到,构造函数模式存在相同功能的函数定义多次的问题.本篇文章就来讨论一下该问题的解决方案--原型模式. 首先我们来看下什么是原型.我们在创建一个函数时,这个函数会包含一个属性prototype,这个属性是一个指针,它指向一个对象--该函数的原型对象,这就是原型,它包含了该函数类型的所有实例可共享的属性和方法,见下面示意图: 如图所示,声明了一个函数Person.在JavaScript中,一个函数被声明的同时就具有了一些属性,其中有一个叫做pr