写了个小程序
function isok(){
return confirm("是否确认提交数据?点【确定】提交,点【取消】放弃");
}function mainClick(){
//var isok = isok();报错:object expected
var ok = isok();
if(ok == true){
var yourname = document.getElementById("yourname").value;
var yourage = document.getElementById("yourage").value;
var yourmoney = document.getElementById("yourmoney").value;
var yourreslut = getResult();
outPrint(yourname, yourage, yourmoney, yourreslut);
}
}正如注释行的代码,页面会报错误object expected,没搞明白,请指教,谢谢。

解决方案 »

  1.   

    var isok = window.isok();
      

  2.   

    这里不能单纯理解为function2中变量和function1方法相同因为js中一切都是对象,包括你的function1,你在创建isok 方法的时候其实就是创建了这个名字为isok的对象,你可以为这个对象添加属性,甚至方法,isok.xxx=function(){}所以你下面var isok的时候,在不等式左边更改了isok的定义,所以浏览器就报错
      

  3.   

    或者可以说是两个命名空间冲突所以下面这样调用也是对的
        function isok(){
            return confirm("是否确认提交数据?点【确定】提交,点【取消】放弃");
        }    function mainClick(){
            isok.ok = isok();//报错:object expected
            var ok = isok();
            if(ok == true){
                var yourname = document.getElementById("yourname").value;
                var yourage = document.getElementById("yourage").value;
                var yourmoney = document.getElementById("yourmoney").value;
                var yourreslut = getResult();
                outPrint(yourname, yourage, yourmoney, yourreslut);
            }
        } 
      

  4.   

    1,2 楼都解释过了,不过这段代码没必要用变量呀?!L@_@K
    function isok(){ 
    return confirm("是否确认提交数据?点【确定】提交,点【取消】放弃"); 
    } function mainClick(){
    if(isok()){ 
    var yourname = document.getElementById("yourname").value; 
    var yourage = document.getElementById("yourage").value; 
    var yourmoney = document.getElementById("yourmoney").value; 
    var yourreslut = getResult(); 
    outPrint(yourname, yourage, yourmoney, yourreslut); 

    } mainClick();