是否可以引用“实时父母”?从同一数组的函数内部调用函数's变量
Is it possible to refer to a "real-time parent" function's variable from inside of a function of the same array?
我完全意识到这段代码是有点奇怪的javascript的本质,但看看它:
var arr = [
function () {
this.b = "hello";
//or var b = "hello";
arr[1]();
},
function () {
var str = RealtimeParentFunc.b;
alert(str);
// want to get "hello"
}
];
// want to get "hello"!
arr[0]();
也许这是不可能的,但我想知道是否有办法做到这一点。如何获得一个数组的函数,在同一数组调用函数的变量?
我不得不回到这个问题,并决定发布一个更新:当然,我不能从内部引用arr[i]
,但我必须强调,上面的代码不应该太字面化:它只是我想要的一个演示;但是看起来我可以做我想做的如果我有一个小的"辅助"函数,它是之前在代码中定义的:
var a = function (i, v) {
return arr[i]()[v];
};
var arr = [
function () {
var h = "hello, ";
var n = a(2, "n");
return {
"h": h+n
}
}, function () {
var h = a(0, "h");
alert(h)
}, function () {
return {
"n": "your name"
}
}];
arr[1]();
你不能在定义数组的同时访问它的值,因为在创建的时候,arr2
还不存在。
[ function(){ .. }, function(){ .. }]
数组不会创建并设置为arr2
,直到它到达末尾的;
分号。因此,当arr2[1]()
被定义时,你不能引用它。
.push()
放入其中,但您仍然限于按顺序执行:
var arr2 = [];
arr2.push(
function () {
var b = "hello";
//arr2[1](); // CAN'T DO THIS since arr2[1] doesn't exist
return {
b: b
};
});
arr2.push(
function () {
var str = arr2[0]().b;
alert(str);
// want to get "hello"
});
// want to get "hello"!
arr2[0]();
arr2[1]();
参见工作小提琴:http://jsfiddle.net/amyamy86/5k57X/
相关文章:
- 调用函数内部的函数
- javascript函数内部的代码用逗号而不是分号分隔
- javascript无法重新定义函数内部的全局对象
- 如何从函数内部的这个变量中获取值
- appendChild在函数外部工作,但在函数内部不工作
- 在jquery函数内部设置来自jquery函数的var;t运行
- 一个'var'在函数内部声明
- 为什么(如何)'这'从函数内部调用回调时发生更改
- 函数内部未定义的输入值
- 在Meteor中如何将数据从函数内部复制到其他模板
- 如果在构造函数内部为else,则Javascript是可选的
- 我对“;返回true"嵌套函数内部;t工作
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- javascript,将参数传递给函数内部的闭包中的回调
- 匿名自执行js函数内部的全局变量在外部仍然可用
- 使用PHP和Javascript在函数内部传递alphaneumeric值作为参数时出错
- 访问函数内部的Polymer方法
- 更改函数内部的全局变量而不调用它
- 如何在函数内部为jquery工具提示调用不同的var字符串
- 构造函数内部的事件处理