[求助] js面向对象 不懂为什么要init进行初始化 [复制链接] mojiezuo3 中级会员 电梯直达 楼主 发表于 2013-7-3 09:50:38 | 只看该作者 1,什么时候需要这么写? 2,一般把哪些方法放进init里面? 3,直接在构造函数里面放属性,原型里面放方法 ,貌似也能写好代码。 请各位给我指点下。 分享到: QQ好友和群 QQ空间 腾讯微博 腾讯朋友 收藏2 分享 淘帖 支持 反对 西部数码云主机全国3强45元起! 回复 使用道具 举报 GaFish 版主 沙发2# 发表于 2013-7-3 10:14:29 | 只看该作者 举个栗子: function Test(){} Test.prototype.init = function(){} 如果要创建一个Test的实例,并调用init方法,那最普通的做法是: var test = new Test(); test.init(); 这样做也没错,我们的想法是它创建的时候其实就是在做初始化的工作,那干脆就简化它,在new的时候就让他直接自动调用init方法,省去再次手动调用,所以一般都会写成如下形式: function Test(){ this.init.apply(this, arguments); } 在init方法里面一般是做一些事件绑定,界面初始化的工作。 第三个问题期待楼下说说。 回复 支持 反对 使用道具 举报 mojiezuo3 中级会员 藤椅3# 楼主 | 发表于 2013-7-4 09:17:53 | 只看该作者 | 楼主 谢谢楼上的解答 论坛里的哥们,都再给我说下啊 回复 支持 反对 使用道具 举报 abaddonpoet 银牌会员 板凳4# 发表于 2013-7-4 14:14:52 | 只看该作者 本帖最后由 abaddonpoet 于 2013-7-4 14:16 编辑 以我的理解,应该是降低耦合性,程序比较大的时候可以分工进行。init做1个总的控制器 回复 支持 反对 使用道具 举报 mojiezuo3 中级会员 报纸5# 楼主 | 发表于 2013-7-5 09:40:07 | 只看该作者 | 楼主 abaddonpoet 发表于 2013-7-4 14:14 以我的理解,应该是降低耦合性,程序比较大的时候可以分工进行。init做1个总的控制器 比较符合 我的理解 ,那其他兄弟们都是这样的理解吗