javascript的局部变量和全局变量的问题。
代码如下:varperson2={name:"tom",age:"23",tell:function(){alert("name="+this.name);},//这个可...
代码如下:
var person2={
name:"tom",
age:"23",
tell:function(){ alert("name="+this.name);}, //这个可以显示name的值
tall:function(){ alert("age="+this.age);}, //这个弹出undefine
}
alert(person2.tell());
alert(person2.tall()+"第二个函数怎么是显示这样子的?");
为什么在alert(person2.tall()")时,这个函数弹出的值是undefine的? 展开
var person2={
name:"tom",
age:"23",
tell:function(){ alert("name="+this.name);}, //这个可以显示name的值
tall:function(){ alert("age="+this.age);}, //这个弹出undefine
}
alert(person2.tell());
alert(person2.tall()+"第二个函数怎么是显示这样子的?");
为什么在alert(person2.tall()")时,这个函数弹出的值是undefine的? 展开
展开全部
你调用的方法本来就有问题,因为alert只能弹出一个字符或数字或对象,
而person2.tell(),里面就是一个弹出方法,所以对alert来说他不是对象,不是字符,所以是undefine.
如果上面的方法改为下面写法就不会有问题:
var person2={
name:"tom",
age:"23",
tell:function(){return "name="+this.name;}, //这个可以显示name的值
tall:function(){return "age="+this.age;}, //这个弹出undefine
}
alert(person2.tell());
alert(person2.tall()+"第二个函数怎么是显示这样子的?");
而person2.tell(),里面就是一个弹出方法,所以对alert来说他不是对象,不是字符,所以是undefine.
如果上面的方法改为下面写法就不会有问题:
var person2={
name:"tom",
age:"23",
tell:function(){return "name="+this.name;}, //这个可以显示name的值
tall:function(){return "age="+this.age;}, //这个弹出undefine
}
alert(person2.tell());
alert(person2.tall()+"第二个函数怎么是显示这样子的?");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为在alert(person2.tell());中的person2.tell()被执行,弹出name=tom,但是person2.tell()没有返回值,当然外层再次alert时当然提示undefined了啊。跟,好没有什么关系,希望对你有所帮助,如果不明白,你改成这个tell:function(){ alert("name="+this.name);return this.name;},希望对你有所帮助!就是返回值得问题
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你仔细看你的代码 ,就拿第一句alert来说吧,alert(person2.tell()); 这句代码首先执行的是person2.tell(); 它的 输出就是name=tom; 但是这个方法你没有没有返回值,默认的返回值就是undefined,然后alert(underfine), 就是这个样子的了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
tall:function(){}, 最后那个语句不要","号,逗号啊,看清楚了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
声明Person时最后一条语句后面是不能为逗号的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询