组合使用构造函数模式和动态原型模式、寄生构造函数模式(创建具有额外方法的特殊数组)
2015-11-03 11:05
597 查看
摘要: 构造函数用于定义实例属性,原型模式用于定义方法和共享属性,寄生构造函数可在特殊情况下为对象创建构造函数
function Bird(name, age) { this.name = name; this.age = age; this.sons = ["Tom", "John"]; //在sayName()方法不存在的情况下,添加到原型中 if (typeof this.sayName != "function") { Bird.prototype.sayname = function() { console.log(this.name); }; } } /* 使用动态原型模式时,不能使用对象字面量重写原型,如果在已经创建了实例情况下重写原型,就会出现上一篇文章中提到过的错误。 */
function SpeArray() { var values = new Array();//创建数组 values.push.apply(values, arguments);//添加值 values.toPipedString = function() { return this.join("|"): }; return values;//返回数组 } var colors = new SpeArray("red", "blue", "green"); console.log(colors.toPipedString()); //当然在此不能直接修改Array构造函数,且创建一个有特殊方法的数组 //根据此原理可以设计自己的“栈”、“队列”等特殊数据结构。
相关文章推荐
- C++中拷贝构造函数的应用详解
- 构造函数不能声明为虚函数的原因及分析
- 深入讲解C++中的构造函数
- C++类成员构造函数和析构函数顺序示例详细讲解
- c++基础语法:构造函数与析构函数
- JavaScript 构造函数 面相对象学习必备知识
- JavaScript面向对象设计二 构造函数模式
- Javascript面向对象编程(二) 构造函数的继承
- 成员初始化列表与构造函数体中的区别详细解析
- C#中私有构造函数的特点和用途实例解析
- C#中派生类调用基类构造函数用法分析
- C#静态构造函数用法实例分析
- javascript 静态对象和构造函数的使用和公私问题
- Javascript 使用function定义构造函数
- JavaScript中的普通函数与构造函数比较
- jQuery构造函数init参数分析续
- jquery 构造函数在表单提交过程中修改数据
- php中拷贝构造函数、赋值运算符重载
- JS特殊函数(Function()构造函数、函数直接量)区别介绍
- 不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象