教程首页 平面设计 网页设计 编程教程 数据库 cms教程 站长教程 电脑教程 办公软件 服务器 网络通讯 电脑硬件

javascript构造函数的重载和工厂方法

通过重载这个构造函数方法让它根据传入参数的不同,来执行不同的初始化方法。

有时候我们希望对象的初始化有多种方式。比如通过元素组成的数组来初始化一个Set对象,而不是通过传入构造函数的参数列表来初始化它

重载overload

通过重载这个构造函数方法让它根据传入参数的不同,来执行不同的初始化方法。

[js]代码

function Set() {
    this.values = {};            // 用这个对象的属性保存这个集合
    this.n = 0;                    // 集合中值的个数
    
    // 如果传入一个类数组的对象,将这个元素添加到集合中
    // 否则,将所有的参数都添加到集合中
    if(arguments.length === 1 && isArrayLike(arguments[0])) {
        this.add.apply(this, arguments[0]);        //把对象利用apply()添加到集合中
    }else if(arguments.length > 0) {
        this.add.apply(this, arguments);        // 利用add()方法添加所有参数到集合中
    }
}


这段代码所定义的Set()构造函数可以显式将一组元素作为参数列表传入,也可以传入元素组成的数组。但这个构造函数有多义性,如果集合的某个参数是一个数组就将无法通过这个构造函数来创建这个集合了(为了做到这一点,需要首先创建一个空集合,然后显示调用add()方法)。

工厂方法

一个类的方法用于返回类的一个实例。

// 工厂方法通过数组初始化Set对象
Set.fromArray = function(arr) {
    var s = new Set();
    s.add.apply(s, arr);
    return s;
};
不同名字的工厂方法用以执行不同的初始化。但由于构造函数是类的公有标识,因此每个类只能有一个构造函数。但这并不是一个必须遵守的规则。

辅助构造函数

通过以函数的形式调用Set()来初始化这个新对象

[js]代码

// 定义Set类型的一个辅助构造函数
function SetFromArray(arr) {
    // 通过以函数的形式调用Set()来初始化这个新对象
    // 将arr的元素作为参数传入
    Set.apply(this, arr);
}
// 设置原型, 以便SetFromArray能创建Set实例
SetFromArray.prototype = Set.prototype;

JavaScript 没有做不到,只有想不到

 

 

搜索:javascript 构造函数 重载 工厂方法

最新-教程
利用photoshop画笔工具给黑白相片上色
(function(){})()等函数的详细解释
利用minify工具合并css和js文件
PHP伪造referer地址的三种方法
帝国CMS标签tags出现空标签的情况解决办法
由于权限不足而无法读取配置文件出现的HTTP 500.19解决办法
iis7.5 http 错误 500.19- Internal Server Error 错误解决方法
iis7.5 http 500.19 错误代码 0x800700b7 解决办法
javascript构造函数的重载和工厂方法
javascript模块化与命名空间
广告代码优化之-document.write
js检测来源网址,如果是搜索引擎跳转到新地址

素材天下 PSD素材 矢量图素材 图片素材 网页模板 PPT模板 flash素材 设计教程 图标 jquery插件 js代码 酷站欣赏 电脑壁纸 设计欣赏

Copyright © 2009-2013 niutuku.com All Rights Reserved.