如何在我致電login()
時訪問buildLoginUrl()
?第一個here
沒有被打印,我認爲這是因爲對login()
的調用從不返回。在javascript中訪問內部功能
main.js:
$(document).ready(function() {
// login function to kick off the authorization
function login(callback) {
console.log("here2");
// builds the login URL for user after clicking login button
function buildLoginUrl(scopes) {
console.log("here3");
return 'https://accounts.spotify.com/authorize?client_id=' + clientID +
'&redirect_uri=' + redirectURI +
'&scope=' + scopes +
'&response_type=token';
}
// other stuff
}
// event listeners
$("#login").click(function() {
// call the login function, we'll get back the accessToken from it
console.log("here1");
login(function(accessToken) {
// callback function from login, gives us the accessToken
//buildLoginUrl(scopes);
var request = getUserData(accessToken);
console.log("here");
request.get(options, function(error, response, body) {
console.log(body);
});
// other stuff
});
});
控制檯:
here1
here2
here4
你不在你的例子中的任何地方調用'buildLoginUrl'。你想在哪裏打電話? –
除非將其分配給可訪問(例如全局)變量或從函數返回,否則無法從封閉函數外部訪問它。你爲什麼不直接在匿名函數中聲明它? – Harald
'buildLoginUrl()'永遠不會調用,所以'here3'永遠不會顯示。 –