JavaScript ES6类中的私有属性

JavaScript ES6类中的私有属性

是否可以在ES6类中创建私有属性?

下面是一个例子。如何防止访问instance.property?

class Something {
  constructor(){
    this.property = "test";
  }}var instance = new Something();console.log(instance.property); //=> "test"


鸿蒙传说
浏览 1368回答 3
3回答

慕尼黑5688855

简单地说,不存在对带有ES6类的私有属性的本机支持。但是,您可以模仿这种行为,方法是不将新属性附加到对象,而是将它们保存在类构造函数中,并使用getter和setter来达到隐藏属性。注意,getter和setter将在该类的每个新实例上重新定义。ES6class Person {     constructor(name) {         var _name = name        this.setName = function(name) { _name = name; }         this.getName = function() { return _name; }     }}ES5function Person(name) {     var _name = name    this.setName = function(name) { _name = name; }     this.getName = function() { return _name; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript