我在JS中有下一个:
function doC() {
this.try = document.getElementById("try");
function tryC(){
//do something
}
}
现在,我想调用tryC函数,所以我写了下一个:
<script type="text/javascript" src="myFile.js"></script>
<script type="text/javascript">tryC();</script>
但正如我所见,没有任何事情发生。我打电话给tryC()
?
答案 0 :(得分:3)
您已在C
的范围内定义了doC
。它不能在doC
之外访问。
如果您希望全局访问它,则必须明确地为其分配全局。
window.C = function () { /* etc */ };
创建全局变量通常是一个坏主意,当它们不是在加载时创建时更是如此。有可能有更好的方法来解决你试图解决的问题。
答案 1 :(得分:1)
你的tryC是在doC中定义的,它没有暴露(它是私有的),你可以这样做:
function doC() {
this.try = document.getElementById("try");
return function(){
alert('Try C');
}
}
doC()(); // alerts
或
function doC() {
this.try = document.getElementById("try");
return {
tryC : function(){
alert('Try C');
}
}
}
doc().tryC(); //alerts
或者你的方式(全局的全局)
function doC() {
this.try = document.getElementById("try");
this.tryC = function(){
alert('Try C');
}
}
doC(); // call first!
tryC(); // alerts