码迷,mamicode.com
首页 > 其他好文 > 详细

组合使用构造函数模式和动态原型模式、寄生构造函数模式(创建具有额外方法的特殊数组)

时间:2014-08-28 13:28:29      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:color   使用   io   ar   数据   cti   log   sp   on   

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构造函数,且创建一个有特殊方法的数组
//根据此原理可以设计自己的“栈”、“队列”等特殊数据结构。


组合使用构造函数模式和动态原型模式、寄生构造函数模式(创建具有额外方法的特殊数组)

标签:color   使用   io   ar   数据   cti   log   sp   on   

原文地址:http://my.oschina.net/quidditch/blog/307487

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!