本文主要是介绍【前端每日一题】day5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
JS 实现继承的几种方式
在JavaScript中,实现继承的几种方式包括原型链继承、构造函数继承、组合继承、原型式继承、寄生式继承和组合式继承。
原型链继承:
function Parent() {this.name = 'Parent';
}
Parent.prototype.sayHello = function() {console.log('Hello, I am ' + this.name);
};function Child() {}
Child.prototype = new Parent();var child = new Child();
child.sayHello(); // 输出: Hello, I am Parent
构造函数继承:
function Parent() {this.name = 'Parent';
}function Child() {Parent.call(this);
}var child = new Child();
console.log(child.name); // 输出: Parent
组合继承:
function Parent() {this.name = 'Parent';
}
Parent.prototype.sayHello = function() {console.log('Hello, I am ' + this.name);
};function Child() {Parent.call(this);
}
Child.prototype = new Parent();
Child.prototype.constructor = Child;var child = new Child();
child.sayHello(); // 输出: Hello, I am Parent
原型式继承:
function object(o) {function F() {}F.prototype = o;return new F();
}var parent = {name: 'Parent',sayHello: function() {console.log('Hello, I am ' + this.name);}
};var child = object(parent);
child.sayHello(); // 输出: Hello, I am Parent
寄生式继承:
function createAnother(original) {var clone = Object.create(original);clone.sayHello = function() {console.log('Hello, I am ' + this.name);};return clone;
}var parent = {name: 'Parent'
};var child = createAnother(parent);
child.sayHello(); // 输出: Hello, I am Parent
组合式继承:
function Parent(name) {this.name = name;
}
Parent.prototype.sayHello = function() {console.log('Hello, I am ' + this.name);
};function Child(name) {Parent.call(this, name);
}
Child.prototype = Object.create(Parent.prototype);
Child.prototype.constructor = Child;var child = new Child('Child');
child.sayHello(); // 输出: Hello, I am Child
这篇关于【前端每日一题】day5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!