javascript – 在dojo中使用此方法通过父类访问子方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在dojo中使用此方法通过父类访问子方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1893字,纯文字阅读大概需要3分钟。
内容图文
给定A类和B类,其中B类继承自A类……
// Define class A
dojo.declare("mynamespace.A",null,{
myMethodA: function() { this.myMethodB() }
});
// Define class B
dojo.declare("mynamespace.B",mynamespace.A,{
myMethodB: function() {}
});
在类A(父类)的范围内调用this.myMethodB()是否合法?
我在一个软件中看到过这个,我不明白.我知道在Java中,除非你将A转换为B,否则这是不可能的.但dojo有什么不同吗?
解决方法:
你对这个问题的流行语是this.inherited(参数);
你的问题是调用一个不在当前继承范围内的方法 – 并且真正的面向对象的程序员会被称为无效.然而,由于加载器在全局范围内声明了所有内容,因此可能(仍然).您可以通过mynamespace.X访问任何模块,然后添加prototype.theMethod.
一旦你拥有了mynamespace.B中的继承,A和B的所有功能都是’this’范围.它就像一个合并的东西哈希,比如A中的所有方法和变量,设置实例B [key] =属性A [key].
但是,如果你遇到一个覆盖,其中属性是’A’和B类的原型 – 在declare / construct链中有一个机制允许调用’super'(或父类,遵循你的符号).
对于特殊属性构造函数,它总是如此,继承起泡[句点].
对于任何只声明一次的方法,如果它不是一个继承的方法,你就不能自称为它 – 然后可以通过’this’访问它
对于任何具有覆盖的方法,函数’this.inherited(arguments);’将向上发送,一个勾选到当前被调用者的父类.看看延伸小提琴here
var AClass = dojo.declare("mynamespace.A", null, {
constructor: function(args) {
this.overriddenMethod();
},
overriddenMethod: function() {
}
});
var BClass = dojo.declare("mynamespace.B", [AClass], {
constructor: function() { },
overriddenMethod: function() {
// call super before anything else is processed in this method
// by placing following call you can control function callflow
this.inherited(arguments);
}
});
// will call A.constructor, then A.overriddenMethod
new AClass();
// will call B.constructor, A.constructor, B.overriddenMethod and then
// A.overriddenMethod via the call to super
// in B.overriddenMethod which A.constructor
// calls (note that A.constructor callflow 'aims' B.override not A.override)
new BClass();
内容总结
以上是互联网集市为您收集整理的javascript – 在dojo中使用此方法通过父类访问子方法全部内容,希望文章能够帮你解决javascript – 在dojo中使用此方法通过父类访问子方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。