js 对象访问器属性问题

想请问下 js 对象的命名访问器属性与通过 defineProperty 设置 getter 和 setter 函数的区别:

 a = {
    name: 'aaa',
    get myName() {
        return this.name
    }
}
a.myName //'aaa'
b = {
    name: 'bbb'
}
Object.defineProperty(b, 'myName', {
    get: function() {
        return this.name
    },
    set: function(newName) {
        this.name = newName
    }
})
b.myName //'bbb'
阅读 1.3k
1 个回答

但就get和set来说最终结果应该没啥区别,其他无非是defineProperty可以修改已定义过的属性的,而字面量形式只能重新定义。
这两个写法都在mdn的getter示例

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题