今天,试着定义了一个对象,简单的包括一个属性和方法,如下:        var obj = {
name : "obj",
printInfo : function(){
alert("my name is obj");
}
}
alert(obj.name);
alert(obj.printInfo());本以为输出的是:
obj和my name is obj,
结果输出的是
obj和my name is obj还有一个undefined,
请问这是什么原因呢?希望知道的大侠帮忙解下疑惑,先谢谢啦!

解决方案 »

  1.   

     printInfo : function(){
                alert("my name is obj");
            }
    返回了一个undefined,alert是alertprintfinfo的返回值
      

  2.   

    obj.printInfo这个方法你没有定义它的返回值,所以它返回undefined,所以alert(obj.printInfo())就会弹出undefined。如果想要得到你想要的结果,可以做如下修改。
    方法1:var obj = {
            name : "obj",
            printInfo : function(){
                alert("my name is obj");
            }
        }
        alert(obj.name);
        obj.printInfo();方法2:var obj = {
            name : "obj",
            printInfo : function(){
                return "my name is obj";
            }
        }
        alert(obj.name);
        alert(obj.printInfo());
      

  3.   

    第一个输出obj,是因为alert(obj.name);中obj.name的值被输出了
    第二个输出my name is obj,是因为obj.printInfo()被执行了
    第三个输出undefined,是因为alert(obj.printInfo());中,obj.printinfo()函数并没有返回值。如下你可以得到输出:我是printinfo函数的返回值
    printInfo : function(){
      alert("my name is obj");
      return "我是printinfo函数的返回值";
    }