使javascript变量在不同的函数中可见
make javascript variable visible in different functions
我需要在某个地方声明变量a
,并使用javascript技术使f2
函数在f1
函数内部调用时可见。但是直接调用(在f1
函数之外)f2
函数必须不能打印a。我不能用eval。我不能改变f2函数。我可以随意改变f1函数。这可能吗?
function f1(var_name){
f2();
}
function f2(){
console.log(a);
}
f1(); // must log value of the a
f2(); // must not be able to log a
小小的变通。声明一个全局变量并设置为undefined。在f1内部调用f2函数之前设置a
的值。在f2 call
a
为undefinedvar a = undefined;
function f1(var_name){
a = 'this is a ';
f2();
a = undefined;
}
function f2(){
console.log(a);
}
为什么不使用另一个全局变量?您定义了一个全局变量a
,并在函数f1中声明了一个新的全局变量b = a
,调用将打印b
全局变量的f2函数,将全局变量b
再次设置为NULL。
这样,b
将只在f1函数期间定义,并且将具有全局a
变量的值。
此方法仅在f2()已经使用" This "时才有效:(在这种情况下,将不会更改以添加"this"支持)。
function f1(var_name){
var scope = {a: var_name};
f2.call(scope);
}
function f2(){
console.log(this.a);
}
f1(123); // must log value of the a
f2(); // must not be able to log a
你也可以考虑函数重载
相关文章:
- 从函数JavaScript返回不可变数组/对象
- 将对象传递给函数.JavaScript
- 如何定义const函数javascript(语法糖)
- 新的日期函数javascript
- TypeError:this.getAttribute不是一个函数-javascript
- 从函数javascript发送变量
- 扩展自容器函数Javascript
- 从内部函数javascript内部分配外部函数的对象
- 使用函数JavaScript中的函数
- 在这里使用回调函数(JavaScript)有什么好处吗
- 来自函数 Javascript 的 NaN 返回值 ||函数执行顺序
- 将“e”传递给一个新函数 - javascript
- 调用函数中的一个函数——Javascript
- 传递的变量不适用于我的函数-Javascript
- 如何将类方法设置为等于多个函数?-Javascript
- 显示php中的函数javascript
- 如何使用php代码创建函数Javascript弹出框
- 未调用的外部函数-javascript
- 如何在类中运行函数.Javascript
- 关闭mouseover上的一个函数——Javascript,jQuery