<script language="Javascript">
function Person(){
}
var person1=new Person(); 
person1.name= "hailongshih";
person1.age= 23;
var x="age";
//eval("alert(person1.“+x+”);");
function sayFuc()
{ var x="name";
 alert(person1[x] + ":" + person1["age"]);
 var x="age";
 alert(person1[x] + ":" + person1["age"]);
 } 
person1.say=sayFuc();
person1.say();
</script>
运行不出效果来,当把
/*var x="age";
eval("alert(person1.“+x+”);");*/时就可以运行出效果了
不太理解,前一种全局变量x不是被函数里面的x覆盖掉吗?

解决方案 »

  1.   

    拼写错误及语法错误!L@_@K
    function Person(){ 

    var person1=new Person(); 
    person1.name= "hailongshih"; 
    person1.age= 23;var x="age"; // 原来是中文分号!
    //eval("alert(person1.“+x+”);"); function sayFuc() 
    {
        var x="name"; 
        alert(person1[x] + ":" + person1["age"]); 
        var x="age"; 
        alert(person1[x] + ":" + person1["age"]); 
    }person1.say = sayFuc; // 带括号表示执行该函数!而函数名表示函数句柄!
    person1.say(); 
      

  2.   

    我把函数改正了为甚出现对话框显示“undefined”呢
      

  3.   

    额确实是符号出现问题,当改正符号就显示结果了,
    但是当我把eval("alert(person1.“+x+”);");前面双斜杠去掉了,为什么就没有结果呢