注意点:
1,内置类的原型是无法重定向的
2,优点:在需要向原型上扩充大量的方法的时候,重定向的操作一方面可以简化代码的编写,一方面也可以把所有扩充的公共属性和方法统一管理起来。
3,弊端:原型重定向后之前原型对象上存在的公共属性和方法也就没有了。
解决:1)如果之前原型上没有手动扩充任何属性方法,则重定向的原型对象手动设置一个constructor即可。
2)如果之前原型上还存在其他的属性方法,则在重定向之前最好做“新老”原型对象的合并处理。
例如:
(1)
function fn(){
this.x = 100;
this.y = 200;
}
fn.prototype.write = function () {};
fn.prototype.read = '666';
fn.prototype = Object.assign(fn.prototype,{say(){},
eat(){}});
let f1 = new fn();
console.log(f1)
(2)