(100分),刚学习的js,挺麻烦的!!半小时后结贴,多谢!

nic7968 2013-11-15 04:10:31
调用时这么写, :
var comm = new xtComm.Coord("Add");
xtComm.Coord.Calc(1, 43);

下面的代码怎样编写,可以满足 像上面那段代码的调用? 【要求:模块化写法(符合AMD规范)】
var xtComm = (function () {

var Coord = (function () {
var __type = "";
var ctor = function (type) {
this.__type = type;
}
var proto = ctor.prototype;

proto.add = function (n1, n2) {
var result = 0;
if(__type == "add"){
result = n1 + n2;
}
return result;
};

return proto;
})();

xtComm.Coord = Coord;
return xtComm;
})();
...全文
143 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nic7968 2013-11-15
  • 打赏
  • 举报
回复
showbo ,说的很到位,多谢。
打字员 2013-11-15
  • 打赏
  • 举报
回复
LZ結貼了!!!
zhjdg 2013-11-15
  • 打赏
  • 举报
回复
一个多小时,还不结贴。
Go 旅城通票 2013-11-15
  • 打赏
  • 举报
回复
var comm = new xtComm.Coord("Add"); xtComm.Coord.Calc(1, 43); 这里写错了吧,要调用实例的方法。。你那样写就是静态的了 comm.Calc(1, 43);
    var xtComm = (function () {

        var Coord = (function () {
            var __type = "";
            var ctor = function (type) {
                /*this.*/__type = type; //不能用this,要不Calc也要通过this来调用
            }
            var proto = ctor.prototype;

            proto.Calc = function (n1, n2) {
                var result = 0;
                if (__type == "add") {
                    result = n1 + n2;
                }
                return result;
            };

            return ctor;
        })();
        return { Coord: Coord };
       /* xtComm.Coord = Coord;//不能这样引用xtComm,会报错,xtComm都还没初始化
        return xtComm;*/
    })();

    var comm = new xtComm.Coord("Add");
    alert(comm.Calc(1, 43))
nic7968 2013-11-15
  • 打赏
  • 举报
回复
这行:proto.add = function (n1, n2) { 是这样:proto.Calc = function (n1, n2) {

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧