您的位置:首页 > 移动开发

backbone.js+jqm+html5的移动App开发总结一

2013-07-24 18:21 295 查看
最近才意识到记录问题的重要性,以前好多东西没有记录下来,都渐渐遗忘了,现在,就从眼下的问题开始。

我的任务是负责移动端开发的逻辑部分,一个模块做出来了,其他模块快是快,但是总得有点进步,今天添加新模块希望有所突破,因为这些天的工作下来发现各个模块的代码十分类似,但就是有那么一点区别,而且一直苦于js语言不够面向对象,不像java可以直接继承,但也是有办法的。今天不想只是简单拷贝代码了,希望对Backbone.js中的Backbone.View深度扩展(简单来说就是继承,实现代码公用,model应该也是一样的道理)。

在这里就今天的实验成果进行简单的记录,首先需要创建一个超类SuperModule

var SuperModule = Backbone.View.extend({

constructor:superConstructor;

//代码

});

function superConstructor() {

superConstructor.__super__.constructor.call(this);

}


实现深度扩展最重要的是将Backbone.View的子类SuperModule的constructor构造函数=superConstructor

而在superConstructor中实现的其实就是调用父类(也就是Backbone.View)的构造器(constructor)

接下来就是对SuperModule这个超类进行向下扩展(即是继承,也就是深度扩展了)类似代码如下:

var subModule = SuperModule.extend({

constructor: subConstructor
//....

});

function subConstructor() { subConstructor.__super__.constructor.call(this); // 调用父类构造器 }

到此为止就实现了深度扩展了,资历尚浅,可能还有问题,只是暂时还没有碰到,如有错误,欢迎指正。

方法并不难,真正理解就比较难了,以后深入理解Backbone或者js,看来至少是要仔细研读一下里面的继承机制了,继续研究研究

(今天下午不知道抽了什么风,把调用父类构造器代码中的.constructor.call(this)给注释了,结果一下午进入一个诡异的Bug空间,但是真的挺诡异的,一进入调试模式就没有问题,直接运行就会有问题,而且问题是出在changePage切换页面的时候,“_trigger
of null”,至今还是不明白,应该都会报错啊,为什么调试的时候不会错,希望以后能够弄明白。)

/article/4664466.html感谢这篇博文作者,不然我也没有解决的方向,网上提到的好少,在此希望不仅自己做个总结,也是给有需要的朋友一个方便了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: