浏览 4141 次
锁定老帖子 主题:一个困惑我的js问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-12-10
function class1(); { this.func1 = function(); { alert('func1');; } var class2 = new function(); { this.func2 = function(); { // how to call the func1 } } } 如何让func2来调用func1呢? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-12-10
我也很想知道js中为何需要这种java中的 private inner class
我时常提醒自己不要用java的思维写js! 但我还是用java的逻辑来说明我的意见: 如果你的本意是想让 func1 成为一个子类class2可以调用的方法,那么最好是把 func1 定义为 class1 的私有类方法,如下: function class1(); { var func1 = function(); { alert('func1');; } this.class2 = function(); { this.func2 = function(); { func1();; } } } |
|
返回顶楼 | |
发表时间:2005-12-11
function class1(); { this.func1 = function(); { alert('func1');; } var _currentInstance = this; var class2 = new function(); { this.func2 = function(); { // how to call the func1 _currentInstance.func1();; } } } |
|
返回顶楼 | |
发表时间:2005-12-11
一般象楼上那样,总是给一个自定义的class中将this赋值给一个变量来获得该class的引用。
另外,我还喜欢总是给定义的方法设置默认名称: function class1(); { this.func1 = function _func1(); { alert('func1');; } var class2 = new function(); { this.func2 = function(); { // how to call the func1 _func1();; } } } 这样有两个好处,第一是调用方便,内部使用,第二是避免所有方法都是匿名方法,在跟踪的时候会方便很多(使用valueOf的效果不同)。 |
|
返回顶楼 | |
发表时间:2005-12-11
醒来 写道 我也很想知道js中为何需要这种java中的 private inner class
我时常提醒自己不要用java的思维写js! 谢谢大家提供了这么多思路,采用这种方法是因为class2要作为参数进行传递, 完成相应事件处理。 |
|
返回顶楼 | |
发表时间:2005-12-11
swing 写道 一般象楼上那样,总是给一个自定义的class中将this赋值给一个变量来获得该class的引用。
另外,我还喜欢总是给定义的方法设置默认名称: function class1(); { this.func1 = function _func1(); { alert('func1');; } var class2 = new function(); { this.func2 = function(); { // how to call the func1 _func1();; } } } 这样有两个好处,第一是调用方便,内部使用,第二是避免所有方法都是匿名方法,在跟踪的时候会方便很多(使用valueOf的效果不同)。 你这种方式没有普遍适用性,假如 func1 中有关于 this 操作,显然就出问题了,如下所示: function class1(); { this.name = "class1_name"; this.func1 = function _func1(); { alert(this.name);; } var class2 = new function(); { this.func2 = function(); { // how to call the func1 _func1();; } } } |
|
返回顶楼 | |