gpt4 book ai didi

javascript - 访问作用域对象

转载 作者:行者123 更新时间:2023-11-28 00:26:04 25 4
gpt4 key购买 nike

我有下面的代码:

<!DOCTYPE html>
<html>
<body>

<script>
function zz(){
var location = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
return this;
}

var abc= zz();
console.log(abc); //This works, but it is the the window objects location, I want the location I have defined
console.log(some code here to print out John);
console.log(some code here to print out Doe);
</script>
</body>
</html>

我选择 location 作为对象名称,以了解有关作用域冲突的更多信息。

但现在我不知道如何获取我定义的变量。我知道我有一个名为 location 的对象,包装在函数 zz 中

我知道对象位置有一个 John 的名字属性我还知道对象位置有一个方法 fullName ,它将把 John Doe 返回到调用引用。

那么我需要做什么才能将 John 等输出到控制台?

谢谢

最佳答案

var仅在使用关键字var定义的范围内可用。 。我很确定您确实想要 this在你的location里面反对引用您的location对象,而您可能需要 zz 中的更多方法。以下是实现这一目标的方法:

function zzLoc(context){
this.firstName = 'John';
this.lastName = 'Doe';
this.id = 5566;
this.fullName = function(){
return this.firstName+' '+this.lastName;
}
this.parent = context;
}
function zz(){
this.location = function(){
return new zzLoc(this);
}
// more methods here
}
var wellNow = new zz, loc = wellNow.location();
console.log(loc.fullName());

关于javascript - 访问作用域对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29480807/

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