function Person(name, age, job){
var o = new Object();
o.sayName = function(){
alert(name);
};
return o;
}
var person = Person ("han", 29, "Softerware Engineering");
person.sayName();
person.sayAge = function (){
alert(age);
};
person.sayAge(); 为什么前一个sayName()可以访问name,而sayAge不能访问age。这个时候age,job变量还存在吗,如果不存在,为什么name变量还是存在的?
解决方案 »
- 求助:jQuery的fadeIn在ie6的问题
- 新手求助>
- 如何调用Ext.onReady(function{})内部的方法?
- 这样写,为什跳转网页没效果? 告诉我原因,谢谢
- jstd
- 当点击一个超链接的时候,如何获取其在页面中的坐标?
- 请问VB数组能否做javaScript中的函数的参数啊?
- 各路俠客,請大家來我這休息一下!! 我的 iframe 不能修改 parent 中一表格的 id 值,不過我的 iframe 有點特殊!!
- 请问jquery中this的作用范围,为什么把$(this)放到ajax的success的函数里就不起作用了?
- js问题研究了好久都没思路
- jquery重写实现confirm功能
- 表格中动态添加行中,如何实现删除当前行?
你的函数的作用域是在定义时而非运行时。所以你的sayName方法是可以调用name变量的
然而你在sayAge等方法中是不能访问相应变量的,是因为你在定义的时候上下文没有相应的变量另外
var o = new Object();
o.sayName = function(){
alert(name);
};
return o;可以考虑这样写
return {
sayName : function(){
alert(name);
}
};