Javascript 错误对象不是函数:为什么代码需要 window。?
Javascript error object is not a function: why the code needs window.?
我无法理解
之间的区别
var maxResult = window.max(maxValInt1, maxValInt2);
效果不错,而且
var maxResult = max(maxValInt1, maxValInt2);
出现错误 "object is not a function"。
为什么我需要在max函数前加上window.
?
我是 Java 脚本的新手,如果您能详细解释一下会很有帮助。
<div id="maxOfTwo">Max function: <input type = "number" name="val1" value="0">, <input type = "number" name="val2" value="0"> = <span></span></div>
<script type="text/javascript">
function max(val1, val2){
if(val1 > val2){
return val1;
}else{
return val2;
}
}
window.onload = function() {
var max = document.getElementById("maxOfTwo");
var maxNumber1 = max.children[0];
var maxNumber2 = max.children[1];
maxNumber1.addEventListener("blur", doMax);
maxNumber2.addEventListener("blur", doMax);
function doMax() {
var maxValue1 = maxNumber1.value;
var maxValue2 = maxNumber2.value;
var maxValInt1 = parseInt(maxValue1);
var maxValInt2 = parseInt(maxValue2);
var maxResult = window.max(maxValInt1, maxValInt2);
max.children[2].innerHTML = maxResult;
}
}
</script>
var max = document.getElementById("maxOfTwo");
您有一个同名的局部作用域变量。
如果您没有显式访问 window 对象的 属性,则作用域链将首先找到您的 HTML 元素对象。
我无法理解
之间的区别var maxResult = window.max(maxValInt1, maxValInt2);
效果不错,而且
var maxResult = max(maxValInt1, maxValInt2);
出现错误 "object is not a function"。
为什么我需要在max函数前加上window.
?
我是 Java 脚本的新手,如果您能详细解释一下会很有帮助。
<div id="maxOfTwo">Max function: <input type = "number" name="val1" value="0">, <input type = "number" name="val2" value="0"> = <span></span></div>
<script type="text/javascript">
function max(val1, val2){
if(val1 > val2){
return val1;
}else{
return val2;
}
}
window.onload = function() {
var max = document.getElementById("maxOfTwo");
var maxNumber1 = max.children[0];
var maxNumber2 = max.children[1];
maxNumber1.addEventListener("blur", doMax);
maxNumber2.addEventListener("blur", doMax);
function doMax() {
var maxValue1 = maxNumber1.value;
var maxValue2 = maxNumber2.value;
var maxValInt1 = parseInt(maxValue1);
var maxValInt2 = parseInt(maxValue2);
var maxResult = window.max(maxValInt1, maxValInt2);
max.children[2].innerHTML = maxResult;
}
}
</script>
var max = document.getElementById("maxOfTwo");
您有一个同名的局部作用域变量。
如果您没有显式访问 window 对象的 属性,则作用域链将首先找到您的 HTML 元素对象。