我創建了一個父類和兩個子類。兩個子類各有一個方法來計算Area的值。
每當我呼叫a7.areaPrint()時。它顯示我undefined。但我可以在控制臺中通過c7.calculate() && s7.calculate()得到結果。
我如何將這兩個區域的值傳遞給父類并列印它?
c7.calculate() && s7.calculate()將被列印在Parent類。
function myExtend(Parent, Child) {
Child.prototype = Object。 create(Parent.prototype)
Parent.prototype.constructor = Parent.
}
function Area(circleArea, squareArea) {
this.areaPrint = function () {
console.log("The Circle area is: " Circle.call(this, circleArea)
console.log("The Square area is: " Square.call(this, squareArea>)
}
}
function Circle(r){
this.radius = r
this.calculate = function () {
var circleArea = (Math.PI * Math。 sqrt(this. radius, 2).toFixed(2)
return circleArea。
}
}
function Square(s) {
this.side = s
this.calculate = function () {
var squareArea = (Math.sqrt(this. side, 2).toFixed(2)
return squareArea。
}
}
//Create Prototype(Area > Circle)
myExtend(Area, Circle)
//原型成員。
Circle.prototype。 perimeter = function (D) {
return (Math.PI * D).toFixed(2)
}
//Create Prototype(Area > Square)
myExtend(Area, Circle)
var c7 = new Circle(5)
var s7 = new Square(5)
var a7 = new Area()
console.log()
a7.areaPrint()
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
不確定我是否理解你的問題。
根據我的理解,你需要在行中傳遞引數 var a7 = new Area() -> var a7 = new Area(c7, s7) 并且在面積計算代碼中從Circle.call(this, circleArea) 到函式呼叫circleArea.calculate().
function myExtend(Parent, Child) {
Child.prototype = Object。 create(Parent.prototype)
Parent.prototype.constructor = Parent.
}
function Area(circleArea, squareArea) {
this.areaPrint = function() {
console.log("The Circle area is: " circleArea.calculate())。
console.log("The Square area is: " squareArea.calculate())。
}
}
function Circle(r){
this.radius = r
this.calculate = function() {
var circleArea = (Math.PI * Math。 sqrt(this. radius, 2).toFixed(2)
return circleArea。
}
}
function Square(s) {
this.side = s
this.calculate = function() {
var squareArea = (Math.sqrt(this. side, 2).toFixed(2)
return squareArea。
}
}
//Create Prototype(Area > Circle)
myExtend(Area, Circle)
//原型成員。
Circle.prototype。 perimeter = function(D) {
return (Math.PI * D).toFixed(2)
}
//Create Prototype(Area > Square)
myExtend(Area, Square)
var c7 = new Circle(5)
var s7 = new Square(5)
var a7 = new Area(c7, s7)
console.log()
a7.areaPrint();
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/313393.html
標籤:
上一篇:從另一個C 檔案訪問類
