我想在实际创建对象之前创建指向对象变量的“指针”:
anotherFunc();
function anotherFunc()
{
let obj3 = { param1 : obj1.hp , param2 : obj2.hp };
myFunction(obj3);
}
function myFunction(parameters)
{
let obj1 = {
hp: 100
};
let obj2 = {
hp: 50
};
console.log(parameters);
thirdFunc(parameters);
}
function thirdFunc({param1, param2}={})
{
console.log(param1);
}
如果我当然运行此代码,则会出现错误,因为此时obj1和obj2不存在。但是,我希望能够告诉程序:“嘿,目前这些变量和对象不存在,但是当我告诉您时,您需要在闭包中查找它们并获取它们的值”。甚至有可能在js中具有这种功能吗?
// 编辑
对不起,看来我确实提出了不适当的问题。不可能做我想做的事。
答案 0 :(得分:0)
答案 1 :(得分:0)
在运行时,当您致电obj1
并到达此行anotherFunc
时,尚未声明let obj3 = { param1 : obj1.hp , param2 : obj2.hp };
。您无法访问未声明的变量,否则将获得variableName is not defined
。就您而言,每个变量仅在其作用域(功能)中可用。
我不知道您要达到什么目标,但也许是这样的:
function anotherFunc() {
let obj3 = { param1 : null , param2 : null };
myFunction(obj3);
}
function myFunction(obj) {
obj.param1 = 100;
obj.param2 = 50;
console.log(obj);
thirdFunc(obj);
}
function thirdFunc({param1, param2} = {}) {
console.log(param1);
}
anotherFunc();
如果您还需要其他东西,可以请您描述一下您想要什么吗?