首页 > 代码库 > 组合使用构造函数模式和动态原型模式、寄生构造函数模式(创建具有额外方法的特殊数组)
组合使用构造函数模式和动态原型模式、寄生构造函数模式(创建具有额外方法的特殊数组)
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构造函数,且创建一个有特殊方法的数组 //根据此原理可以设计自己的“栈”、“队列”等特殊数据结构。
组合使用构造函数模式和动态原型模式、寄生构造函数模式(创建具有额外方法的特殊数组)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。