我可以用javascript为对象设置条件变量吗?

我可以用javascript为对象设置条件变量吗?,javascript,Javascript,我试图根据if语句决定变量应该是什么来为对象设置变量 const object = { name: name, subject: subject, text: text, };

我试图根据if语句决定变量应该是什么来为对象设置变量

                    const object = {
                                name: name,
                                subject: subject,
                                text: text,
                            };

                            if (1 >2){
                                var name = 'Lionel'
                                var subject = 'Hello';
                                var text = 'Is it me your looking for?';

                            }else{
                                var name = 'Queen'
                                var subject = 'Bicycle!!';
                                var text = 'I want to ride one!';                                   

                            }

                     console.log(object);
电流输出: {name:undefined,subject:undefined,text:undefined}

期望输出:
{name:Queen,subject:Bicycle!!,text:I want to ride!}

您没有更新创建的对象。试试这个

let obj = {
  name: name,
  subject: subject,
  text: text,
};

if (1 > 2) {
  obj.name = 'Lionel'
  obj.subject = 'Hello';
  obj.text = 'Is it me your looking for?';
} else {
  obj.name = 'Queen'
  obj.subject = 'Bicycle!!';
  obj.text = 'I want to ride one!';
}

console.log(obj);

未定义
结果的原因是您正在引用声明之前的变量

您可以这样使用(如果只有两个选项):

const object = 1 > 2 ? 
   {
    name: "Lionel",
    subject: "Hello",
    text: "Is it me you'r looking for"
   } : 
  {
   name: "Queen",
   subject: "Bicycle!!",
   text: "I want to ride one!"
  };

可以使用三元运算符在对象初始化时执行此操作

let条件=(1>2);
设obj={
姓名:条件?'Lionel':'Queen',
主题:条件“你好”:“自行车!!”,
文字:条件?“是你在找我吗?”:“我想骑一辆!”
};

控制台日志(obj)使用构造函数,而不是随意重命名变量

请注意,不要使用var在代码块中声明变量。它使变量成为全局变量,这将导致冲突,尤其是与您级别的代码冲突。使用let代替

构造函数(名为construct的函数)的美妙之处在于它不会改变变量
object
中已存储的对象,而是创建一个新的对象并替换
object
中已存储的对象。这还可以防止冲突和奇怪的代码副作用。这与函数式编程范式相一致

let construct=(名称、主题、文本)=>({
姓名:姓名,,
主题:主题,,
文本:文本,
}),
对象
如果(1>2)object=construct('Lionel','Hello','it me your looking?');
else object=construct('Queen','Bicycle!!','I want to骑一辆!');

console.log(对象)在尝试在对象中使用这些变量之前,您需要分配变量……您想在创建对象时只检查一次语句,还是考虑以后更改对象中的一些值,并希望每次运行if语句?您的实际情况是什么?您的代码抛出一个错误:ReferenceError:name未定义