js对象,成员变量,this,var相关问题 本帖最后由 hanvslin 于 2010-08-19 17:30:35 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1:对象直接量相, 意思是声明一个对象,对象名是obj句有 name 属性,值是‘zhangsan’;2function f1(){this.name = 11;var name = "gg"; // var 声明的外部不能访问,可以看做私有变量name : "kk" //不合法, 是直接量写法}3 this就指object这个对象 3 中 的this貌似指向的windowalert(object.getNameFunc()())执行这个输出的是"The Window"1的听不明白,2中我想问成员变量和var定义的变量有什么不同,也没有听明白你的意思,谢谢! 不好意思第三个看错了,this应该是指向window对象,当这个对象的内部函数并非这个对象的属性是this是被绑定到全局对象, 在浏览器中就是window对象 第一个=var obj = new Object();obj.name = "zhangsan"; 问题一:是的,确切的说是对象直接量,JavaScript有两种对象,一种是普通对象,上面的那个就是,另外一种是function对象,您可以搜索JavaScript 面向对象 了解下问题二:var定义的变量时局部变量,function外是不能直接访问的,可以使用闭包来访问,而成员变量是只能在运行的时候确定到底是那个对象的变量,如:function f1(){this.name = 11;var name = "gg"; // var 声明的外部不能访问,可以看做私有变量}f1();那么这里的this指的就是window,因为我是在window下调用的第三个问题:var name = "The Window"; var object = { name : "My Object", getNameFunc : function(){ return function(){ return this.name;//这里的this指哪个对象,为什么? }; } };这里的this也是运行时才能确定如果我下面的方式执行object.getNameFunc()();这个this就是window对象,因为object.getNameFunc()返回的是一个方法,然后再()执行,执行的环境是在window下,如果我把getNameFunc 改成下面的内容getNameFunc : function(){ alert(this.name); return function(){ return this.name;//这里的this指哪个对象,为什么? }; }上面的this指的就是object对象了,不知道您能不能理解? 第二个 window.onload = function () { function F() { this.name = '123'; var name = '456'; } var f = new F(); alert(f.name); } var obj = { name : "hh"}function fun(){ this.name="hh";}var obj2 = new fun();alert(obj.name)alert(obj2.name)两个结果是一样的,怎么理解两种不同的成员变量定义的形式? 补充下:问题一:这种方式叫JSON,是指Javascript Object Notation, 即Javascript对象表示法 关于js获取iframe的问题 【分享】JavaScript播放MP3歌词同步显示 请问怎么用js来控制img的src js继承中的疑问 请问怎么取得浏览器名称的函数是哪一个??????????????? 某台win7 ie10下jquery效果第一次浏览起作用,需刷新后才正常,为什么? 如何使用代码实现按键盘事件(VBScript或JScript)?来者有分!!! checkbox名字是一个数组faq[1]、faq[2];如何使其选中? blur事件的问题 求一段代码??点击按钮将文本框中的内容添加到列表框中?? Jquery相关 如何取得地址栏某个字符串啊
function f1(){
this.name = 11;
var name = "gg"; // var 声明的外部不能访问,可以看做私有变量
name : "kk" //不合法, 是直接量写法
}3 this就指object这个对象
alert(object.getNameFunc()())执行这个输出的是"The Window"
1的听不明白,2中我想问成员变量和var定义的变量有什么不同,也没有听明白你的意思,谢谢!
不好意思第三个看错了,this应该是指向window对象,当这个对象的内部函数并非这个对象的属性是this是被绑定到全局对象, 在浏览器中就是window对象
第一个=
var obj = new Object();
obj.name = "zhangsan";
问题二:var定义的变量时局部变量,function外是不能直接访问的,可以使用闭包来访问,而成员变量是只能在运行的时候确定到底是那个对象的变量,如:
function f1(){
this.name = 11;
var name = "gg"; // var 声明的外部不能访问,可以看做私有变量
}
f1();
那么这里的this指的就是window,因为我是在window下调用的
第三个问题:
var name = "The Window"; var object = {
name : "My Object", getNameFunc : function(){
return function(){
return this.name;//这里的this指哪个对象,为什么?
}; } };
这里的this也是运行时才能确定
如果我下面的方式执行
object.getNameFunc()();
这个this就是window对象,因为object.getNameFunc()返回的是一个方法,然后再()执行,执行的环境是在window下,如果我把getNameFunc 改成下面的内容
getNameFunc : function(){
alert(this.name);
return function(){
return this.name;//这里的this指哪个对象,为什么?
}; }
上面的this指的就是object对象了,不知道您能不能理解?
第二个 window.onload = function () {
function F() {
this.name = '123';
var name = '456';
} var f = new F();
alert(f.name);
}
name : "hh"
}
function fun(){
this.name="hh";
}
var obj2 = new fun();
alert(obj.name)
alert(obj2.name)
两个结果是一样的,怎么理解两种不同的成员变量定义的形式?
问题一:这种方式叫JSON,是指Javascript Object Notation, 即Javascript对象表示法