起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2225|回复: 8

[结贴] 同目录下两个Js进行函数调用时报错:is not a function

[复制链接]

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
发表于 2016-11-18 09:30:01 | 显示全部楼层 |阅读模式
关于js引用的介绍我看了,但我就简单测试一下就是行不通。同一目录下建的两个W文件。。然后在Js里做引用和函数调用。一直报错,引用后调用的函数is not a function。直接附上两个js的源码:testFunc.js:
define(function(require){
        var $ = require("jquery");
        var justep = require("$UI/system/lib/justep");
       
        var Model = function(){
                this.callParent();
        };

        Model.prototype.showMsg = function(){
                return "Hello";
        };

        return Model;
});
test2.js:

define(function(require){
        var $ = require("jquery");
        var justep = require("$UI/system/lib/justep");
        var test = require("./testFunc");
       
        var Baas = justep.Baas;
        var Model = function(){
                this.callParent();
        };

        Model.prototype.funcBtnClick = function(event){
                var abc = test.showMsg();
                debugger;
                alert(abc);
        };


        return Model;
});



到底哪还有问题啊。。快崩溃了。。。
传说中路过

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2016-11-18 10:30:45 | 显示全部楼层
define(function(require){
        var $ = require("jquery");
        var justep = require("$UI/system/lib/justep");
        
        var Model = function(){
                this.callParent();
        };        return {
                showMsg : function(){
                        return "Hello";
                };
        };
});

把第一个问价改成这样试试呢?
回复 支持 反对

使用道具 举报

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
 楼主| 发表于 2016-11-18 10:41:32 | 显示全部楼层
半导体 发表于 2016-11-18 10:30
define(function(require){
        var $ = require("jquery");
        var justep = require("$UI/syste ...

把return model改成return 待调用的函数,这样修改的话对原文件的使用有没有影响???引用的话倒是可以正常调用函数了
传说中路过
回复 支持 反对

使用道具 举报

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
 楼主| 发表于 2016-11-18 10:55:45 | 显示全部楼层
半导体 发表于 2016-11-18 10:30
define(function(require){
        var $ = require("jquery");
        var justep = require("$UI/syste ...

各种调试的时候发现另个小问题:如果用windowdialog打开的页面,用this.getParent()能获取到父页面,调用父页面的方法是用this.getParent().testFunc()还是要有别的具体格式呢?直接这样带函数名也提示未定义是什么情况
传说中路过
回复 支持 反对

使用道具 举报

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2016-11-18 10:59:52 | 显示全部楼层
carbinechun 发表于 2016-11-18 10:41
把return model改成return 待调用的函数,这样修改的话对原文件的使用有没有影响???引用的话倒是可以 ...

会有影响的  所以建议把公共的函数写在一个单独的js文件里面。
回复 支持 反对

使用道具 举报

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
 楼主| 发表于 2016-11-18 11:09:29 | 显示全部楼层
半导体 发表于 2016-11-18 10:59
会有影响的  所以建议把公共的函数写在一个单独的js文件里面。

两个问题:
1、如果用windowdialog打开的页面,用this.getParent()能获取到父页面,调用父页面的方法是用this.getParent().testFunc()还是要有别的具体格式呢?直接这样带函数名也提示未定义是什么情况
2、如你所说如果把公共函数单独写一个js,那像justep.Shell.username.get()这种变量能在单独的js里直接使用么?还是说公共函数只做业务逻辑处理,像取值这种都在自己页面获取好作为入参给公共函数?
传说中路过
回复 支持 反对

使用道具 举报

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2016-11-18 14:15:31 | 显示全部楼层
windowdialog可以直接写成this.getParentModel().XXXX的形式
回复 支持 反对

使用道具 举报

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
 楼主| 发表于 2016-11-23 09:05:31 | 显示全部楼层
半导体 发表于 2016-11-18 14:15
windowdialog可以直接写成this.getParentModel().XXXX的形式

代码复用问题有待进一步优化。。结帖吧,我把函数在使用的页面都添加了一遍,反正相互也没影响
传说中路过
回复 支持 反对

使用道具 举报

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
 楼主| 发表于 2018-6-14 09:50:31 | 显示全部楼层
本帖最后由 carbinechun 于 2018-6-14 09:54 编辑
半导体 发表于 2016-11-18 10:59
会有影响的  所以建议把公共的函数写在一个单独的js文件里面。

项目做了很久了,现在再修改一些接口发现工作量巨大,公共函数的问题再次浮现出来。你这里说的写在一个单独的js文件里面,这个js具体要什么样式的?能给我简单demo么?我看js引用里有介绍说按amd规范的j引用即可,公共函数的js按这个规则来可以?
传说中路过
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-9-25 13:26 , Processed in 0.085404 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表