首页 > 其他 > 详细

面向对象与原型(一)之创建对象

时间:2015-10-01 23:00:36      阅读:190      评论:0      收藏:0      [点我收藏+]

(一)工厂模式

  为了解决实例化对象产生大量重复的问题。其代码格式如下:

function createObject(name, age) {     //集中实例化的函数

var obj = new Object();

obj.name = name;

obj.age = age;

obj.run = function () {

return this.name + this.age ;

};

return obj;

}

var box1 = createObject(‘ji‘, 10);         //第一个实例

var box2 = createObject(‘Jack‘, 20);     //第二个实例

alert(box1.run());

alert(box2.run());              //保持独立

 

  工厂模式解决了重复实例化的问题, 但还有一个问题, 那就是识别问题, 因为根本无法搞清楚他们到底是哪个对象的实例。

alert(typeof box1);           //Object

alert(box1 instanceof Object);        //true

 

(二)构造函数(构造方法)

    可用来创建特定的对象。类型于 Object 对象。其代码格式如下:

function Box(name, age) {              //构造函数模式

this.name = name;

this.age = age;

this.run = function () {

return this.name + this.age ;

};

}

var box1 = new Box(‘ji‘, 10);   //new Box()即可

var box2 = new Box(‘Jack‘, 20);

alert(box1.run());

alert(box1 instanceof Box);    //很清晰的识别他从属于 Box

 

  使用构造函数的方法, 即解决了重复实例化的问题, 又解决了对象识别的问题,和使用工厂模式的方法他们不同之处如下:

    1.构造函数方法没有显示的创建对象(new Object());

    2.直接将属性和方法赋值给 this 对象;

    3.没有 renturn 语句。

  构造函数的方法有一些规范:

    1.函数名和实例化构造名相同且大写,(PS:非强制,但这么写有助于区分构造函数和普通函数);

    2.通过构造函数创建对象,必须使用 new 运算符。

 

面向对象与原型(一)之创建对象

原文:http://www.cnblogs.com/jizhongjing/p/4851689.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!