在屬性動態變化,公式動態變化的情況下使用:
<html>
<head>
</head>
<body>
<script type="text/javascript">
var tJSON = {
長: 12,
高: 34,
寬: 0.34,
密度: 3.45,
體積: 423,
速度: 4.34,
重量: 234,
公式結果: 0
}
function DoCal() {
var inStr = document.getElementById("TA").value;//函數
if (!inStr || inStr.length == 0) {
alert("請輸入公式");
return;
}
var tArra = [];
tArra.push(" var ")
for (var key in tJSON) {
tArra.push(key);
tArra.push("=this.")
tArra.push(key);
tArra.push(",");
}
tArra.splice(tArra.length - 1, 1);
tArra.push(";\r\n return ");
tArra.push(inStr);
tArra.push(";");
var funcBody = tArra.join("");
try {
var fun = new Function(funcBody);
var rtValue = fun.call(tJSON);
tJSON.公式結果 = rtValue;
alert(rtValue);
}
catch (e) {
alert(e.message);
}
}
</script>
可用屬性:<br />
{<br />
長: 12,<br />
高: 34,<br />
寬: 0.34,<br />
密度: 3.45,<br />
體積: 423,<br />
速度: 4.34,<br />
重量: 234,<br />
}<br />
計算公式<br />
<textarea id="TA">長*寬*高</textarea>
<br />
<button onclick="DoCal()">計算</button>
</body>
</html>