如何在函数中调用javascript函数
我有一个名为screener.js的javascript文件如何在函数中调用javascript函数,javascript,Javascript,我有一个名为screener.js的javascript文件 function ScreenerPage() { function onScreenListChange() { do stuff }; } var ScreenerPage = function() { this.onScreenListChange = function() { //do stuff console.log("test")
function ScreenerPage() {
function onScreenListChange() {
do stuff
};
}
var ScreenerPage = function() {
this.onScreenListChange = function() {
//do stuff
console.log("test")
}
}
在index.html文件中,我包含如下javascript文件:
<script type="text/javascript" src="./js/screener.js"></script>
<script type="text/javascript">
$(document).ready(function () {
screenerPage = new ScreenerPage();
}
</script>
然后,在index.html的head部分,我实例化了screenerPage对象,如下所示:
<script type="text/javascript" src="./js/screener.js"></script>
<script type="text/javascript">
$(document).ready(function () {
screenerPage = new ScreenerPage();
}
</script>
$(文档).ready(函数(){
screenerPage=新的screenerPage();
}
然后在body部分中有一个select with onchange事件,该事件调用
<select id="screenList" onchange="screenerPage.onScreenListChange()">
但浏览器显示错误:
未捕获类型错误:screenerPage.onScreenListChange不是函数
我做错了什么?javascript的工作方式是它有对象,它们的创建方式很重要! 这是我发现对这类事情有效的方法 screener.js
function ScreenerPage() {
function onScreenListChange() {
do stuff
};
}
var ScreenerPage = function() {
this.onScreenListChange = function() {
//do stuff
console.log("test")
}
}
后来
var a = new ScreenerPage();
a.onScreenListChange();
如果您对它的工作原理有任何疑问,请随时给我发消息!它不工作的原因是您遇到了范围问题 函数
ScreenerPage
在全局范围内定义,这意味着它可以在任何地方访问。现在在该函数中,您定义了一个名为onScreenListChange
的本地函数
您可以这样做,但该函数只存在于您在其中定义它的函数的范围内
当我看到你的函数时,我认为你想要使用类。类是一个单一的名称,可以有多个变量/方法来完成特定的任务
class ScreenerPage {
constructor(text){
this.onScreenListChange(text) // Call this "method" on object creation.
}
onScreenListChange(text) {
console.log(text ? text : 'do stuff');
};
}
var a = new ScreenerPage('hi'); // now watch your console log.
a.onScreenListChange();
查看可能重复的不同问题谢谢Jacob,这很有效!我很难确定何时对函数使用这两种不同的格式。@user3217883没问题!如果您想了解有关该语法的更多信息,我建议您访问以下网站