我是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
答案 0 :(得分:1)
在此示例中,var connection
是仅在构造函数的上下文中的变量。
您需要使用this.connection
让它实际上成为对象本身的成员。在您使用它的所有地方将其更改为this.connection
。在定义这样的变量时,您不需要var
,let
或const
。
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
})
}
}