- 内部实现:
function ClassA(sColor) {
this.color = sColor
this.sayColor = function () {
console.log(this.color)
}
}
function ClassB(sName) {
this.name = sName
this.sayName = function () {
console.log(this.name)
}
}
function ClassC(sColor, sName) {
ClassA.call(this,sColor)
ClassB.call(this,sName)
}
var objA = new ClassA("blue")
var objC = new ClassC("red", "John")
objA.sayColor()
objC.sayColor()
objC.sayName()
- 外部实现:
function ClassA(sColor) {
this.color = sColor
this.sayColor = function () {
console.log(this.color)
}
}
function ClassB(sName) {
this.name = sName
this.sayName = function () {
console.log(this.name)
}
}
function ClassC(sColor, sName) {
}
var objA = new ClassA("blue")
var objC = new ClassC()
ClassA.call(objC,'red')
ClassB.call(objC,'John')
objA.sayColor()
objC.sayColor()
objC.sayName()
- 输出:
blue
red
John
新闻标题:javascript继承(call方法)机制的两种实现
文章来源:
http://njwzjz.com/article/jpidpd.html