JavaScript语言的可计算名

可计算名语法用于使用表达式的返回值作为成员名。

支持类的成员:静态字段、静态访问器属性、静态方法、实例字段、实例访问器属性、实例方法。

支持对象字面量的成员:数据属性、访问器属性、方法。

[表达式]

方括号 [] 内可以为任何 JavaScript 表达式,表达式的返回值的类型只可以为 字符串类型(包括空字符串) 或者 符号类型。

注意:可计算名语法用于“成员声明”的时候,而不是“访问成员”的时候。

//类
let name = "a";

class C {
  [name] = 1;
}

let o = new C();
console.log(o);  // { a: 1 }
//对象字面量
let name = "a";

let o = {
  [name]: 1
};

console.log(o);  // { a: 1 }
//对象字面量解构赋值
let name = "a";

let { [name]: b } = { a: 1 };
console.log(b);  // 1

let { [name]: a } = { a: 1 };
console.log(a);  // 1

//不支持此语法(注意:当属性名与变量名相同时,不支持属性简写语法)
let { [name] } = { a: 1 };

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/javascriptexp/36656.html

(0)
huoxiaoqiang的头像huoxiaoqiang
上一篇 2025年4月3日 16:58
下一篇 2025年4月3日 17:02

相关推荐

  • 使用ES模块的两种方式

    无论是内部方式还是外部方式,带有 type=”module” 属性的 <script> 标签会告诉浏览器相关代码应该作为模块执行,而不是作为普通的脚本执行。 无论是内部方式还是外部方式,一个 HTML 页面有多少个 type=”module” 属性的 <script> 标签没有限制。 无论是内部…

    JavaScript经验 2024年1月16日
    09450
  • 函数定义作为值的讲解

    1.作为值赋给变量 2.作为函数的实参(回调函数)或返回值 接受一个回调函数作为实参 或 返回值为函数定义,只要满足其一,函数 callSomeFunction 和 函数 returnSomeFunction 则称为高阶函数(Higher Order Function)。 作为实参的函数定义 add 则称为回调函数(C…

    JavaScript经验 2025年4月3日
    0390
  • nodejs -v与node -v的区别

    笔者在使用 Node.js 的时候发现有 nodejs -v 和 node -v 两个命令,经过一番测试后,总结如下: 如果从 Ubuntu 操作系统官方源里面安装的 Node.js,命令用 nodejs -v,例如: 如果从 Ubuntu 操作系统以外的第三方源(包括snap) 或者 通过 n、node-build、…

    JavaScript经验 2020年9月12日
    04.2K0

发表回复

登录后才能评论