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