var thisfunc = function() {
potato++;
}
var obj = function(myfunc) {
var potato = 12;
myfunc();
}
obj(thisfunc);
//Potato is now 13
- (我认为可以这样做的一种方式)
var thisfunc = function(mypotato) {
mypotato++;
}
var obj = function(myfunc) {
var potato = 12;
myfunc(potato);
}
obj(thisfunc);
//Potato is now 13
我可以通过什么方式将马铃薯传递给myfunc',我假设将马铃薯作为参数传递给myfunc会这样做,但是我希望我能做到这一点myfunc()可以访问其父属性还是无法访问?
答案 0 :(得分:0)
JavaScript具有本地范围,没有传递引用调用,因此这是不可能的。
你唯一能做的就是嵌套你的两个函数,这样子函数可以通过闭包访问父变量:
function obj() {
function myfunc() {
potato++;
}
var potato = 12;
myfunc();
console.log(potato); // 13
}
obj();
如果您不想进行嵌套,或者确实需要thisfunc
是动态的,那么您所能做的就是构建一个对象并访问其属性而不是局部变量 - 一个对象你也可以传球。
function thisfunc(x) {
x.potato++;
}
function obj(myfunc) {
var scope = {
potato: 12
};
myfunc(scope);
console.log(scope.potato); // 13
}
obj(thisfunc);
答案 1 :(得分:0)
您有三种选择。
potato
。potato
设为全局变量。