Javascript 在JS中,是否可以获取一个对象,为属性赋值并将其发送到一行中的另一个函数?
下面是一段JS代码:Javascript 在JS中,是否可以获取一个对象,为属性赋值并将其发送到一行中的另一个函数?,javascript,object,Javascript,Object,下面是一段JS代码: function getObj(){ return {p1: "None"}; } function printObj(obj){ console.log(obj.p1); } //Create an object let o = getObj(); // Assign val o.p1 = "Val2"; //send to Print printObj(o); 有没有可能在一个短的行中做同样的
function getObj(){
return {p1: "None"};
}
function printObj(obj){
console.log(obj.p1);
}
//Create an object
let o = getObj();
// Assign val
o.p1 = "Val2";
//send to Print
printObj(o);
有没有可能在一个短的行中做同样的事情-类似下面的事情
printObj(getObj().p1 = "Val1");
编辑
在编写的短代码中比较不同的方法。您可以使用spread运算符,它将从函数中获取一个对象,并使用所有对象字段生成一个新对象。 而剩下的就是超越道具
printObj({...getObj(), p1: "Val1"});
函数getObj(){
返回{p1:“无”};
}
函数printObj(obj){
控制台日志(obj.p1);
}
//创建一个对象
设o=getObj();
//赋值
o、 p1=“Val2”;
//发送打印
printObj(o);
//一网打尽
printObj({…getObj,p1:“Val2”})代码>
p1:“Val1”
,=
在那里无效。@jornsharpe谢谢,我的错。@OrYaacov它在效率和速度方面更好吗?更好的方法是什么?这个解决方案还是简单的三行代码方法?printObj(Object.assign(getObj(),{p1:'Val1'}))代码>。。。这种方法直接更改getObj()
的返回值;这样就跳过了另一个对象的创建过程,比如说,{…getObj(),p1:“Val1”}
,后者类似于对象。张贴。看起来像{p1:'Val1'}
也创建了一个对象,正如这里正确提到的那样