Javascript创建对象 -- 构造函数模式

 1 function Person(name, age) {
 2     this.name = name;
 3     this.age = age;
 4     this.eat = function() {
 5         alert("eating...");
 6     }
 7 }
 8 var p1 = new Person("cai10", 21);
 9 var p2 = new Person("cai20", 27);
10 alert(p1.name);                 // cai10
11 alert(p1.age);                  // 21
12 p1.eat();                       // eating...
13 alert(typeof p1);               // object
14 alert(p1 instanceof Object);    // true
15 alert(p1 instanceof Person);    // true
16 alert(p1.constructor);          // function Person(name, age) {...}
17 alert(p1.eat == p2.eat);        // false

通过new关键字, 创建并返回一个新的对象. 
在Person()中, 没有显示的创建对象, 
而是直接将属性和方法赋给了this对象, 也没有return语句. 
使用构造函数模式创建实例, 可以将该实例标识为一种特定的类型, 
如例子中, 使用instanceof操作符或constructor属性可以得到验证. 
但仍旧有存在多个Function实例的问题.

时间: 2024-10-16 20:31:04

Javascript创建对象 -- 构造函数模式的相关文章

创建对象 --- 构造函数模式

ECMAScript中的构造函数可以用来创造特定类型的对象,Object和Array 是原生构造函数,在 运行时会自动出现在执行环境.也可以自定义构造函数,示例如下: function Person(name,age,job){ this.name = name; this.age = age; this.job = job; this.sayName = function(){ alert(this.name); }; } var person1 = new Person("wsc"

Javascript创建对象 -- 工厂模式

1 function createPerson(name, age) { 2 var o = new Object(); 3 o.name = name; 4 o.age = age; 5 o.sleep = function() { 6 alert("sleeping..."); 7 } 8 return o; 9 } 10 var p1 = createPerson("cai10", 22); 11 var p2 = createPerson("cai

JavaScript 创建对象之单例、工厂、构造函数模式

01单例模式 首先看一个问题,我们要在程序中描述两个人,这两个人都有姓名和年龄,可能刚刚开始学习js的时候会写成这样: 1 var name1 = 'iceman'; 2 var age1 = 25; 3 4 var name2 = 'mengzhe'; 5 var age2 = 26; 以上的写法的确是描述两个人,每个人都有姓名和年龄,但是每个人的姓名和年龄并没有放在一起,也就是说每个人的年龄和姓名并没有对应起来.这时候我们就引出对象的概念:把描述同一个事物(同一个对象)的属性和方法放在同一个

JavaScript构造函数+原型创建对象,原型链+借用构造函数模式继承父类练习

虽然经常说是做前端开发的,但常常使用的技术反而是JQuery比较多一点.在JavaScript的使用上相对而言少些.尤其是在创建对象使用原型链继承上面,在项目开发中很少用到.所以今天做个demo练习一下,以后忘记了也可以照搬一下. 说明一下: 1. Demo中使用的是构造函数+原型模式创建的对象.构造函数中存储对象实例使用的属性,原型模式增加实例使用的方法. 2. Demo中的继承分为两个方面.一个是属性继承,使用的是借用构造函数模式 call()方法.另一个是方法继承,这个就是使用原型方式继承

javascript工厂模式和构造函数模式创建对象

一.工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程(本书后面还将讨论其他设计模式及其在JavaScript 中的实现).考虑到在ECMAScript 中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节,如下面的例子所示. function createPerson(name, age, job){ var o = new Object(); o.name = name; o.age = age; o.job = job; o.s

JavaScript面向对象OOM 2(JavaScript 创建对象的工厂模式和构造函数模式)

??在创建对象的时候,使用对象字面量和 new Object() 构造函数的方式创建一个对象是最简单最方便的方式.但是凡是处于初级阶段的事物都会不可避免的存在一个问题,没有普适性,意思就是说我要为世界上(程序中)的所有使用到的对象都使用一遍 var xxx = {} ,对于'懒惰'的程序员来讲是不可以接受的.即便你能接受这种创建的方式,也无法保证将所有对象归类这一哲学问题. ??由此,优秀的程序员们利用现有的规则,创造出了一种种优秀的解决方案 -- 这些优秀的解决方案统称为设计模式. ??在 J

Javascript之创建对象(工厂模式与构造函数模式)

虽然Object构造函数或对象字面量都可以创建单个对象,但是这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量重复的代码.为了解决这个问题,就可以使用工厂模式来创建对象. 1.工厂模式 在ECMAScript中是无法创建类的,开发人员就发明了一种函数,用函数来封装特定接口创建对象的细节. function createPerson(name, age, job) { var o = new Object(); o.name = name; o.age = age; o.job = j

JavaScript创建对象之单例、工厂、构造函数模式

// 单例模式 解决分组问题 让每个对象有自己的命名空间 var person1 = { name: "icss"; age: 25; }; var person2 { name: "sas"; age: 26 } // 工厂模式 实现同一事情的代码 放在一个函数中 其实就是函数的封装 体现了高内聚 低耦合 function createPerson(name, age) { var obj = {}; obj.name = name; obj.age = age;

JavaScript创建对象的默认方式:组合使用构造函数模式和原型模式

由于 JavaScript中没有类,对象充当着一系列集合的模板,包含着属性和方法,而每个对象中也有一个原型对象,可以存放共享方法和属性 . 创建自定义类型的最常见方式,就是组合使用构造函数模式与原型模式.构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性 //组合使用构造函数模式(构造函数设置自己的属性)和原型模式(原型设计那些共享的方法和属性) function Person(name,age,job){ this.name=name; this.age=age; this.jo