gpt4 book ai didi

javascript - JS中变量的作用域

转载 作者:行者123 更新时间:2023-12-03 10:33:43 25 4
gpt4 key购买 nike

请看下面的 JS 片段:

var MyClass = function() {
var logging = true;

this.myFunction = function(logging) {

}
}

myObj = new MyClass();
myObj.myFunction(false);

有没有办法访问 myFunction 中的两个日志记录变量?

我能想到的唯一解决方案(this.logging)似乎不起作用: https://jsfiddle.net/x7m3w3gp/

最佳答案

myFunction 方法中的代码中,无法从局部变量外部的作用域访问局部变量,因为参数正在隐藏该变量。

使用 this.logging 不会访问变量,而是会访问同名对象的属性。

您可以在该范围内放置一个可以访问该变量的函数,以用作 myFunction 方法的桥梁。

变量、属性和桥用法示例:

var MyClass = function() {
// local variable
var logging = true;
// property
this.logging = 1;

// bridge local variable
function getLogging() { return logging; }

this.myFunction = function(logging) {
console.log(logging); // parameter
console.log(this.logging); // property
console.log(getLogging()); // local variable
}
}

myObj = new MyClass();
myObj.myFunction(false);

关于javascript - JS中变量的作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29101459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com