如何从方法JS访问类变量
我是javascript
的新手,我正试图用一些方法创建一个简单的类,但我有一个问题,我无法弄清楚我做得不好。
var SpotifyWebApi = require('spotify-web-api-node');
const my_client_id = "xxx";
const my_secret = "xxx";
class Spotify {
constructor() {
this.spotifyApi = new SpotifyWebApi({
redirectUri: 'http://localhost:8081/spotifyCallback',
clientId: my_client_id,
clientSecret: my_secret
});
}
connect() {
console.log(this.spotifyApi.redirectUri);
return spotifyApi.createAuthorizeURL('teststate', ['user-read-private', 'user-read-email']);
};
}
在这里,当我尝试登录到控制台spotifyApi.redirectUri时,我得到了undefined(尝试使用和不使用this关键字)。
回答如下:您访问对象的方式不正确。看下面的代码和输出。
const SpotifyWebApi = require('spotify-web-api-node');
const my_client_id = "xxx";
const my_secret = 'xxx';
const redirectUri='http://localhost:8081/spotifyCallback';
class Spotify {
constructor(my_client_id, my_secret, redirectUri) {
this.spotifyApi = new SpotifyWebApi({
clientId: my_client_id,
clientSecret: my_secret,
redirectUri: redirectUri
});
}
connect() {
console.log(JSON.stringify(spotify.spotifyApi._credentials,null,4));
console.log(this.spotifyApi._credentials.redirectUri);
return this.spotifyApi.createAuthorizeURL(['user-read-private', 'user-read-email'],'teststate');
};
}
//Instantiate
const spotify = new Spotify(my_client_id, my_secret ,redirectUri);
const connectObject = spotify.connect();
输出:
{
"clientId": "xxx",
"clientSecret": "xxx",
"redirectUri": "http://localhost:8081/spotifyCallback"
}
http://localhost:8081/spotifyCallback
你还没有传递createAuthorizeURL
的正确参数。看看signautre abouve和spotify-web-api-node