JavaScript中能否在单条语句内声明函数并为其附加自定义属性?
你设想的这种类对象字面量的写法在原生JavaScript中是不支持的,不过我们可以通过Object.assign实现单条语句同时创建函数、挂载自定义属性的需求。
最简实现
const fn = Object.assign(() => {}, { a: 'a' })
这个写法的原理是,Object.assign会把第二个参数里所有的可枚举属性,批量挂载到第一个参数(也就是我们创建的箭头函数)上,最终返回处理完成的函数对象,全程只需要一条语句。
如果需要给函数挂载带特殊配置的属性(比如只读属性、访问器属性等),可以改用Object.defineProperties实现:
const fn = Object.defineProperties(() => {}, { a: { value: 'a', writable: false, // 设为不可修改 enumerable: true } })
内容的提问来源于stack exchange,提问作者user1283776
相关产品推荐
相关产品推荐

