为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript ES6类中的私有属性

JavaScript ES6类中的私有属性

鸿蒙传说 2019-06-16 15:56:37
JavaScript ES6类中的私有属性是否可以在ES6类中创建私有属性?下面是一个例子。如何防止访问instance.property?class Something {   constructor(){     this.property = "test";   }}var instance = new Something();console.log(instance.property); //=> "test"
查看完整描述

3 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

简单地说,不存在对带有ES6类的私有属性的本机支持。

但是,您可以模仿这种行为,方法是不将新属性附加到对象,而是将它们保存在类构造函数中,并使用getter和setter来达到隐藏属性。注意,getter和setter将在该类的每个新实例上重新定义。

ES6

class Person {
    constructor(name) {
        var _name = name        this.setName = function(name) { _name = name; }
        this.getName = function() { return _name; }
    }}

ES5

function Person(name) {
    var _name = name    this.setName = function(name) { _name = name; }
    this.getName = function() { return _name; }}


查看完整回答
反对 回复 2019-06-16
  • 3 回答
  • 0 关注
  • 1353 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信