我的 javascript 中的percent
变量,变量是从PHP传递结果。
console.log(percent); //* //variable was passed from PHP
function displayLoading() {
console.log(percent); //**
}
如果我使用* console.log(percent)
函数,它将在控制台中print_out percent
的值。但如果我在console.log(percent)
函数中使用** displayLoading
,则会将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传递之前就打印了percents
。
答案 0 :(得分:0)
定义全局变量。
percent = 'foobar';
// window.percent = 'foobar'; /* same thing */
function showthing() {
console.log(percent);
}
showthing();
答案 1 :(得分:0)
尝试从var
删除var per = percents
。像这样
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);
}
答案 2 :(得分:0)
我不知道你在谈论哪个控制台(浏览器或JS REPL - 但它们几乎相同),但REPL总是输出函数的返回值。 我不认为它涉及全球/地方范围,如上所述。
>> p = 5; function dl() { console.log(p); }
<- 5
>> dl()
5
<- undefined
>> foo = function() { return "foo" }
<- function foo()
>> foo()
<- "foo"
答案 3 :(得分:0)
变量:
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
答案 4 :(得分:0)
从AJ中传递变量的方式是否有问题,比如AJAX?当你调用displayLoading()时,AJAX调用可能还没有回答。