js面向对象设计中,在一个对象内部定义变量时,用 var a定义变量和this.a 定义变量有什么不同呢?他们的作用域有什么区别,以及对这些变量的操作有什么区别?
如:
var examp=function()
{
var a;
this.b="";
}
a和b一样吗?
如:
var examp=function()
{
var a;
this.b="";
}
a和b一样吗?
解决方案 »
- 当鼠标移动到下拉列表时显示列表内容
- 散分过国庆~~~~~~~~~~~~
- 为什么我这个网页不能提交?提示this.form为空或不是对象
- 急求!javascript脚本!
- jqGrid 添加、修改时怎么自定义验证和提示
- 这个问题很难吗?(需要来探讨,探讨)
- 请骆驼进来看一下
- 怎样在javascript中改变字体大小?
- javascript怎么这么简单,有什么体现技术含量的地方没有啊
- Ext grid 页面缩小至出现滚动条后,点击Cell里的链接不起作用
- html里面放入<asp:Button 这样的控件,不明白。。。
- 新手求助,JavaScript中getElementById()为空或不是对象 怎么解决
re:
按照java的语法来说不一样.a==null,b=0长度的字符串
alert(typeof b);
试下这段代码:
var testCls=function(arg1){
//对象内部公有变量,不允许外部访问
var a=arg1;
var b=10;
this.c=11;
var alertB=function(){
alert(b);
}};
var test=new testCls(4);
alert("a="+test.a);
alert("b="+test.b);
alert("c="+test.c);
</script>
是有c可以访问到,a和b都访问不到
直接在全局定义的函数,闭包函数,其this指针指向的都是window。
如果你用 new 使得函数变成一个对象的构造函数,则this指针指向生成的对象。function test(){
this.a = 'a';
var b = 'b';
}test();
alert(a); //a
function test2(){
this.a = 'b';
}
test2();
var t = new test();
alert(a); //b
alert(t.a); //a
alert(typeof b); //undefined