javascript - 如何从方法 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 时,我得到未定义(尝试使用和不使用 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
......)
推荐阅读
- machine-learning - XGBoost 将特征重要性作为列列表而不是绘图
- javascript - 我可以使用班级列表并在动画同时完成后将其删除吗
- python - AttributeError:“消息”对象没有属性“成员”-Discord.py 重写
- java - Hazelcast SQL 以动态方式查询
- node.js - 创建 systemd 服务后,NodeJS 应用程序无法在公共 DNS 中访问
- python - 使用单个 LSTM 模型预测 350 个微细分?
- reactjs - 如何在 ErrorBoundary 内重定向?
- html - 如何在 flex 容器中强制居中特定元素?
- ios - 从 UITableViewCell Tap Segue 时传递信息以更改另一个 ViewController 中的变量
- java - 如何使用 ORMLite 在 SQLite 中持久化 JavaFX 属性?