Javascript:如何设置局部变量的值

Javascript:如何设置局部变量的值,javascript,variables,local-variables,Javascript,Variables,Local Variables,调用局部变量时,是否可以为其设置值?这是我的密码 var myvar={ F:function(){ var x; return x;} } 我的问题是当我调用x变量并设置值时,比如myvar.F().x=“hello”。然后调用它console.log(myvar.F().x)x不包含该值只返回未定义的值?我如何修复它,但请不要建议我在F函数中设置值和使用F函数中的参数!另一方面,因为我希望使动态变量不是静态值,感谢您的帮助(您需要打开浏览器上的控制台),这是否有助于模拟您

调用局部变量时,是否可以为其设置值?这是我的密码

var myvar={
F:function(){
    var x;
    return x;}
 }
我的问题是当我调用x变量并设置值时,比如
myvar.F().x=“hello”。然后调用它
console.log(myvar.F().x)
x不包含该值只返回未定义的值?我如何修复它,但请不要建议我在F函数中设置值和使用F函数中的参数!另一方面,因为我希望使动态变量不是静态值,感谢您的帮助(您需要打开浏览器上的控制台),这是否有助于模拟您想要的行为?我不是百分之百的理解你为什么要做这样的事情

var myvar={
f:函数(){
this.x=this.x | |'';
归还这个;
}
}
log(myvar.f());
myvar.f().x=“不是什么”;
console.log(myvar.f.x);

log(myvar.f().x)尽管这里有答案,但有些评论非常清楚。你想要的东西是不可能的

您可以将变量设置为函数的返回,但我不会保存在任何地方。引用立即丢失

var myvar={
f:函数(){
var x=‘某物’;
返回x;
}
}

document.write(myvar.f())如果我理解正确,您希望函数调用的结果是一个有状态对象,您可以从中设置和获取值

我还假设您不希望从函数返回的对象在父对象中的任何其他位置都可以访问

为此,您需要更改对象的创建方式

var Factory = function () { 
    var _priv = { 
        x: "something" 
    }; 

    return { 
        F: function () { 
            return _priv; 
        } 
    }; 
};

var myvar = new Factory();

myvar.F().x; // "something"
myvar.F().x = "hello world";  // "hello world"
因此,初始对象的创建有点不同,但您得到了所需的结果

如果您不介意可以在父对象的其他位置访问返回的对象属性,可以执行以下操作:

var myvar = {
    _priv: {
        x: "something"
    },
    F: function () {
        return this._priv;
    }
};

myvar.F().x; // "something"
myvar.F().x = "hello world";  // "hello world"
缺点是,
\u priv
属性也可以在主对象上访问:

myvar._priv.x; // "hello world"

这回答了你的问题吗?

简单的答案是,你不能通过任何方式将
x
设置在函数之外。
myvar.F()
是一个函数,而不是一个对象,它返回一个1倍的值(如果我正确地记住了JS,则为null)。你可以将x的值作为参数传递,请参阅@jhect you not memory not receight。OP的函数返回x的值(恰好未定义)。没有返回语句或没有显式返回值的函数返回未定义的值。我想在不使用参数的情况下将值设置为X有什么问题?不,我想将值设置为myvar.f().X而不是myvar.f.X。这是变量。您定义的不是我代码的一部分。正如前面所说的,您想要的完全不能实现。我的编辑更接近了吗?你为什么要用这种格式?我缺少什么来完全回答你的问题?
myvar._priv.x; // "hello world"