[英]How do I can access an outside function varible, inside a function in javascript?
我的javascript中有一個percent
變量,該變量正在從PHP傳遞結果。
console.log(percent); //* //variable was passed from PHP
function displayLoading() {
console.log(percent); //**
}
如果我使用* console.log(percent)
函數,它將print_out控制台中的percent
值。 但是,如果我在displayLoading
函數內部使用** console.log(percent)
,它將print_out作為undefined
。
如何訪問函數中的外部variable
?
var funcOne = function() {
this.sharedVal = percent;
};
var funcTwo = function() {
console.log(funcOne.sharedVal);
};
並在控制台日志中給print_out undefined
。
var per = percents
console.log(per); //this line print_out the value into console log
function displayLoading() {
console.log(per); //this print_out "undefined" into console log.
var myPercent = per;
console.log(per); //and also print_out "undefined" into console log.
}
上面的兩個代碼都不適合我,有人知道另一種方式嗎? 任何幫助表示贊賞,謝謝:)
我從上面的代碼中獲取上面的javascript中的percents
:
<?php
$percent = $percent + 10;
?>
<script type="text/javascript">
var percents = <?= $percent; ?>;
</script>
<script type="text/javascript" src="../../web/js/test.js"></script>
已發現主要問題,我之所以undefined
是因為在變量從php傳遞之前,我就print_out了這些percents
。
定義一個全局變量。
percent = 'foobar'; // window.percent = 'foobar'; /* same thing */ function showthing() { console.log(percent); } showthing();
嘗試從var per = percents
刪除var
。 像這樣
per = percents
console.log(per); //this line print_out the value into console log
function displayLoading() {
console.log(per);
var myPercent = per;
console.log(per);
}
我不知道您在說哪個控制台(瀏覽器或JS REPL-但是它們幾乎相同),但是REPL總是輸出函數的返回值。 如上所述,我認為這與全球/本地范圍無關。
>> p = 5; function dl() { console.log(p); }
<- 5
>> dl()
5
<- undefined
>> foo = function() { return "foo" }
<- function foo()
>> foo()
<- "foo"
一個變量:
1)使用var
關鍵字聲明的聲明在聲明時具有局部作用域(如果在函數外部聲明,則不能在函數內部使用,反之亦然。
例:
var percent = 'foobar';
function showthing() {
console.log(percent);//wrong
}
console.log(percent);//correct
2)在特定功能內聲明具有功能內的局部范圍。
例:
function showthing() {
var percent = 'foobar';
console.log(percent);//correct
}
console.log(percent);//wrong
從PHP傳遞變量(例如AJAX)的方式是否有問題? 當您調用displayLoading()時,AJAX調用可能尚未應答。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.