【发布时间】:2018-02-08 10:38:45
【问题描述】:
我想使用 getDOM 方法来收集 DOM 值。 getDOM() 函数返回一个带有键值对(输入 DOM 的值)的对象。
我想在另一个名为 tempDifference() 的方法中使用 getDOM 对象。 这不起作用:
app2.js:30 Uncaught TypeError: Cannot read property 'inputHeatFlow' of undefined 在 Object.tempDifference (app2.js:30) 在:1:24
// create app as object
var calcHeatFlow = {
// collect DOM information
getDOM: function() {
// return DOM information as object
return {
// return getDOM properties with DOM values
inputHeatFlow: parseFloat(document.getElementById("input__flow").value),
inputHeatReturn: parseFloat(document.getElementById("input__return").value),
inputHeatTemp: parseFloat(document.getElementById("input__temp").value),
inputHeatExponent: parseFloat(document.getElementById("input__exponent").value),
inputHeatValue: parseFloat(document.getElementById("input__value").value)
}
},
// structure calculate methods
calculate: {
// calculate fixed value
fixedValue: function() {
const normHeatFlow = 75, normHeatReturn = 65, normTemp = 20;
return (normHeatFlow - normHeatReturn) /
(Math.log((normHeatFlow - normTemp) /
(normHeatReturn - normTemp)));
},
// calculate temperature difference
tempDifference: function() {
// return a value
return (this.getDOM.inputHeatFlow - this.getDOM.inputHeatReturn) /
(Math.log((this.getDOM.inputHeatFlow - this.getDOM.inputHeatTemp) /
(this.getDOM.inputHeatReturn - this.getDOM.inputHeatTemp)));
},
// use fixedValue and tempDifference to calculate the result
result: function() {
// calculate result
}
}
};
// collect DOM information in execution phase
calcHeatFlow.getDOM();
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Wärmeleistungsrechner</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="wrapper">
<form class="input">
<input type="number" id="input__flow" value="100">
<input type="number" id="input__return" value="80">
<input type="number" id="input__temp" value="20">
<input type="number" id="input__exponent" value="1.2836">
<input type="number" id="input__value" value="2103">
</form>
<div class="output">
<div id="output__result">
Result
</div>
<div id="output__history">
History
</div>
</div>
<button id="btn">Go</button>
</div>
<script src="js/app2.js"></script>
</body>
</html>
我是一名 JS 初学者,我尝试了解 OOP。每一个解释都表示赞赏!
谢谢,约瑟夫
【问题讨论】:
标签: javascript function oop