我在分配给全局变量的函数中有一个返回参数。但是,当我尝试在其他函数中使用它时,它不会仅仅返回undefined
的任何值。我读了这个scope
知道如何使用全局变量,但这在我在示例之后所做的工作中反过来没有用。
var bookTitle = asksForBookTitle();
function asksForBookTitle() {
var docBookTitle = document.getElementById('addbook-book-title');
var valBoodTitle = docBookTitle.value;
return valBoodTitle;
}
function getBookTitle() {
alert(bookTitle);
}
<input id="addbook-book-title" type="text" name="Book Title" placeholder="Book Title">
<button id="btn-save" type="button" onclick="getBookTitle()"> Save </button>
答案 0 :(得分:1)
因为要在用户输入任何数据之前分配给全局变量。这是固定版本:
var bookTitle;
function asksForBookTitle() {
var docBookTitle = document.getElementById('addbook-book-title');
var valBoodTitle = docBookTitle.value;
return valBoodTitle;
}
function getBookTitle() {
bookTitle = asksForBookTitle();
alert(bookTitle);
}
<input id="addbook-book-title" type="text" name="Book Title" placeholder="Book Title">
<button id="btn-save" type="button" onclick="getBookTitle()"> Save </button>
您甚至不需要为此使用全局变量:
function getBookTitle() {
var docBookTitle = document.getElementById('addbook-book-title');
var valBoodTitle = docBookTitle.value;
alert(valBoodTitle);
}
<input id="addbook-book-title" type="text" name="Book Title" placeholder="Book Title">
<button id="btn-save" type="button" onclick="getBookTitle()"> Save </button>
答案 1 :(得分:1)
您要在程序启动时以及用户有机会输入任何输入之前声明并分配bookTitle
的值。当您将其记录在alert
中时,就是在记录该值,而不是输入内部的值。