// 父类function Animal(name) {this.name = name;}Animal.prototype.sleep = function() {console.log(\\\"动物正在睡觉\\\");};// 子类function Cat(name, color) {Animal.call(this, name); // 调用父类构造函数复制属性this.color = color;}// 使用 Object.assign() 方法复制父类的方法Object.assign(Cat.prototype, Animal.prototype);// 子类中可以覆盖父类的方法Cat.prototype.sleep = function() {console.log(\\\"猫正在打盹\\\");};
// 父类function Animal(name) {this.name = name;}Animal.prototype.sleep = function() {console.log(\\\"动物正在睡觉\\\");};// 子类function Cat(name, color) {this.name = name;this.color = color;}// 子类的原型对象指向父类的实例Cat.prototype = new Animal();Cat.prototype.catchMouse = function() {console.log(\\\"猫正在抓老鼠\\\");};// 子类中可以覆盖父类的方法Cat.prototype.sleep = function() {console.log(\\\"猫正在打盹\\\");};
// 父类class Animal {constructor(name) {this.name = name;}eat() {console.log(\\\"动物正在吃食物\\\");}sleep() {console.log(\\\"动物正在睡觉\\\");}}// 子类class Cat extends Animal {constructor(name, color) {super(name); // 调用父类构造函数抄写属性this.color = color;}catchMouse() {console.log(\\\"猫正在抓老鼠\\\");}// 子类中可以覆盖父类的方法sleep() {console.log(\\\"猫正在打盹\\\");}}
// 创建对象const animal = {name: \\\"动物\\\",eat() {console.log(\\\"动物正在吃食物\\\");},sleep() {console.log(\\\"动物正在睡觉\\\");}};const cat = Object.create(animal); // 创建 cat 对象,并将 animal 对象设置为其原型cat.name = \\\"猫\\\";cat.color = \\\"黄色\\\";cat.catchMouse = function() {console.log(\\\"猫正在抓老鼠\\\");};// 子类中可以覆盖原型对象的方法cat.sleep = function() {console.log(\\\"猫正在打盹\\\");};
内容优化:ChatGPT
内容来源:《JavaScript 语言精髓与编程实战》
原创文章,作者:小道研究,如若转载,请注明出处:https://www.sudun.com/ask/34510.html