function SuperType1() {
this.name = "Tom"
this.property = true
}
SuperType1.prototype.getSuperValue = function() {
console.log(this.property)
}
function SubType1() {
this.name = 'sub'
this.subproperty = false
}
SubType1.prototype.getSubValue = function() {
console.log(this.subproperty)
}
SubType1.prototype = new SuperType1()
let instance1 = new SubType1()
instance1.getSuperValue()
function SuperType(name, age) {
this.name = name
this.age = age
}
SuperType.prototype.sayName = function() {
console.log(this.name)
}
SuperType.prototype.job = 'worker'
function SubType(name, age) {
SuperType.call(this, name, age)
this.sayHi = function() {
console.log(this.name)
}
}
SubType.prototype.sayAge = function() {
console.log(this.age)
}
let instance = new SubType('Tom', 24)
let instance2 = new SubType('Noci', 30)
console.log(instance, instance2)
instance.sayHi()
instance.sayAge()
instance2.sayHi()
instance2.sayAge()
function SuperType3 () {
this.name = name
this.colors = ['red', 'yellow']
}
SuperType3.prototype.sayName = function() {
console.log(this.name)
}
function SubType3(name, age) {
SuperType3.call(this, name)
this.age = age
}
SubType3.prototype = new SuperType3()
SubType3.prototype.constructor = SubType3
let person4 = {
name: 'Tom',
friend: ['Nico', 'Leo']
}
let one = Object.create(person4)
one.friend.push('Coco')
let two = Object.create(person4)
two.friend.push('Ana')
console.log(two.friend)
function createAnother(ori) {
var clone = Object(ori)
clone.sayHi = function() {
console.log('hi')
}
return clone
}
function inheritPrototype(subType, superType){
var prototype = Object(superType.prototype);
prototype.constructor = subType;
subType.prototype = prototype;
}
function SuperType6(name){
this.name = name;
this.colors = ["red", "blue", "green"];
}
SuperType6.prototype.sayName = function(){
alert(this.name);
};
function SubType6(name, age){
SuperType6.call(this, name);
this.age = age;
}
inheritPrototype(SubType6, SuperType6);
SubType6.prototype.sayAge = function(){
alert(this.age);
};