ECS6如何在类中定义/创建新的Object

时间:2017-04-25 19:57:42

标签: javascript node.js ecmascript-6

我是ES ES6的初学者,我需要在类中实例化新对象。 如何做到这一点的最佳方式,以及如何在这种情况下访问""函数getName()中的连接。

可能是胡说八道,但我需要了解这是如何发展的。任何人都会对我有任何提示。

以上小例子

class Test {
  constructor(array){
    this.array = array

    // CONNECT DATABASE
    var connection = mysql.createConnection({this.array})

  }
  getName(){
    query = 'SELECT * FROM mytable LIMIT 1'
    connection.query(query, function (err, rows, fields) {
      return rows
    })
  }
}


array = {
  host: 'localhost',
  user: 'root',
  password: '',
  database: 'mydb'
}

let T = new Test(array)

T.getName()
// error connection is not defined

1 个答案:

答案 0 :(得分:1)

在此示例中,var connection是仅在构造函数的上下文中的变量。

您需要使用this.connection让它实际上成为对象本身的成员。在您使用它的所有地方将其更改为this.connection。在定义这样的变量时,您不需要varletconst

class Test {
  constructor(array){
    this.array = array

    // CONNECT DATABASE
    this.connection = mysql.createConnection({this.array})

  }
  getName(){
    query = 'SELECT * FROM mytable LIMIT 1'
    this.connection.query(query, function (err, rows, fields) {
      return rows
    })
  }
}