如何返回与局部变量同名同值的对象?及返回x/y/w/h值的实现疑问
嘿,我来帮你解决这两个问题,其实你的需求用ES6的语法就能轻松搞定!
1. 如何返回属性名和局部变量完全相同的对象?
ES6引入了对象字面量简写语法,完美解决这个问题!当你要创建的对象属性名和变量名完全一致时,不需要重复写key: value,直接写变量名就可以了。
比如你原来的代码里return { x: x, y: y, w: w, h: h };,可以简化成:
return { x, y, w, h };
这两行代码的效果完全一样,后者更简洁易读,而且是标准的JS特性,所有现代浏览器和Node.js环境都支持。
2. 如何返回变量x、y、w和h的值?
你当前的代码其实已经在做这件事了——通过返回包含这些变量的对象,外部可以直接访问这些值。优化后的完整代码如下:
const selectorRect = (function() { let x = undefined; let y = undefined; let w = undefined; let h = undefined; // 用简写语法返回对象,属性名和变量名一一对应 return { x, y, w, h }; })(); // 打印整个对象,查看所有值 console.log(selectorRect); // 输出: { x: undefined, y: undefined, w: undefined, h: undefined } // 单独访问某个变量的值 console.log(selectorRect.x); // 输出: undefined
如果之后你给x、y等变量赋值(比如x = 50; y = 30;),返回的对象也会包含更新后的数值,因为返回时取的是变量当前的状态。
内容的提问来源于stack exchange,提问作者user8380672
相关产品推荐
相关产品推荐

