无法从同一文件调用 JavaScript 函数

Posted

技术标签:

【中文标题】无法从同一文件调用 JavaScript 函数【英文标题】:Cannot Call JavaScript Function from same File 【发布时间】:2016-08-29 17:09:52 【问题描述】:

我正在定制一个基于 IBM MobileFirst 平台的 Maximo Anywhere 应用程序。

我已经实现了一个自定义的 javascript 文件,并且能够直接通过 app.xml 调用这些函数。但是,我无法从其他 JavaScript 函数调用此文件中包含的函数。你不能这样打电话吗?任何帮助将不胜感激。

请参阅下面的简化示例。这将在 callFromApplication 函数调用 retNewVal 函数时失败。

简化示例:

callFromApplication: function(eventContext)
    var selectedResource = eventContext.getResource().getCurrentRecord();
    var val1 = 5
    var val2 = retNewVal(val1);
    selectedResource.set('property1', val1);
    selectedResource.set('property2', val2);    
,

retNewValue : function(val)
    return val * 2;
,

谢谢!

【问题讨论】:

失败时的错误信息是什么? 欢迎来到 Stack Overflow。你可以改进你的问题。请阅读Minimal, Complete, and Verifiable example。当您的代码不加赘述地显示您的确切问题时,您就是在尊重那些自愿帮助您的人。 【参考方案1】:

在我看来,您是从对象定义中调用 retNewValue 函数。

尝试在其前面添加this. 以确保正确维护范围

var obj = 
    func1notworking: function() 
        func2("Doesn't Work");
    ,
    func1working: function() 
        this.func2("Works");
    ,
    func2: function(output) 
        alert(output);
    
;

//obj.func1notworking();
obj.func1working();

JsFiddle

【讨论】:

以上是关于无法从同一文件调用 JavaScript 函数的主要内容,如果未能解决你的问题,请参考以下文章

如何从母版页中的控件调用 javascript 函数?

如何从 Objective-C 中调用的 JavaScript 函数访问 response.body?

无法从 Javascript 调用 PHP 函数 [重复]

我们可以在另一个 JS 文件中调用用一个 JavaScript 编写的函数吗?

JavaScript 函数调用

MVC 视图和 JavaScript 文件