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 元素对象。