- 主题:js函数里var的变量属于哪个对象的属性?
window.f = function () {
var v = 'test'; // v是哪个对象的属性?如何引用?
}
--
FROM 121.33.144.*
实际上是属于一个对象的,函数的call对象
var的变量、做为参数传进来的变量和arguments对象都是这个call对象的属性
就是不知道怎么引用到这个call对象。。
【 在 weixiao9 (毕业了我就睡清华南门的过街天桥上) 的大作中提到: 】
: 局部变量,在这里不属于任何一个对象。
: 在函数体里面的用法如其他变量。
--
FROM 121.33.10.*
在函数体内
【 在 withinsea (沐海~魔導奏器|歌の琴フォルテール) 的大作中提到: 】
: 你要在什麽地方引用它?
--
FROM 121.33.10.*
有些时候从引用入手可以用关联数组下标动态指定访问哪个属性:
var obj = {'name': 'hello', 'msg': 'world'};
var prop = 'name';
alert(obj[prop]);
prop = 'msg';
alert(obj[prop]);
如果找不到obj这个引用,就没法动态访问它的属性了。
另外你能解释一下下面这段脚本吗?
<script type="text/javascript">
window.F = function () {
var name = 'hello'; // new时如何绑定访问域和副本?
this.show = function () {
alert(name);
}
this.change = function () {
name = 'world';
}
}
var a = new F();
var b = new F();
a.show(); // hello
b.show(); // hello
a.change();
a.show(); // world
b.show(); // hello
</script>
【 在 withinsea (沐海~魔導奏器|歌の琴フォルテール) 的大作中提到: 】
: 那直接用不就行了?爲什麽還要從別處找引用?
--
FROM 121.33.10.*
thx, 我再看看。
【 在 nullgate (空门·苦吟行者) 的大作中提到: 】
: current closure
: u need understand "closure" first...
: there is no "closure" in languages like C/C++ (ok, you can actually call
: ...................
--
FROM 121.33.10.*
把obj当成函数的call对象就可以类比了
【 在 pizzaxp (aka pizzamx) 的大作中提到: 】
: name不是实例属性么?
--
FROM 121.33.10.*