gpt4 book ai didi

javascript - 如何从方法 JS 访问类变量

转载 作者:搜寻专家 更新时间:2023-10-31 23:06:55 24 4
gpt4 key购买 nike

我是 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 时,我得到未定义(尝试使用和不使用 this 关键字)。

最佳答案

这是因为您的库 ( https://github.com/thelinmichael/spotify-web-api-node ) 在实例化时使用 redirectUri 作为选项,但没有将其作为属性公开。

如果您仍然需要它,请将 redirectUri 放入类属性中,如下所示:

const SpotifyWebApi = require('spotify-web-api-node');

class Spotify {
constructor(my_client_id, my_secret) {
this.redirectUri = 'http://localhost:8081/spotifyCallback';
this.spotifyApi = new SpotifyWebApi({
redirectUri: this.redirectUri,
clientId: my_client_id,
clientSecret: my_secret
});
}

connect() {
console.log(this.redirectUri);
return this.spotifyApi.createAuthorizeURL('teststate', ['user-read-private', 'user-read-email']);
};
}

const my_client_id = "xxx";
const my_secret = "xxx";

// Now you can instantiate your class with this :
const spotify = new Spotify(my_client_id, my_secret);
const yourToken = spotify.connect();

我用一些好的做法编辑了我的答案(添加构造函数参数,使用 this,...)

关于javascript - 如何从方法 JS 访问类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55157973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com