- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 John Resig 的继承类来扩展我正在开发的一些类。这些类具有被重写的方法。尽管如此,这些方法的原始版本也应该被调用。我的问题是,当我尝试调用父类(super class)上的方法时,它会调用覆盖原始方法的方法。
以下代码为例:
var A = Class.extend({
init: function(){
this.doStuff(); // this invokes doStuff from B instead of A
},
doStuff: function(){
// does stuff on the super class
}
});
var B = A.extend({
init: function(){
this._super();
this.doStuff();
},
doStuff: function(){
// does stuff on the sub class
}
});
当我创建 B 的实例时:
var test = B.create();
一旦调用 A(父类(super class))中的 init 方法,就会调用 B 中的 doStuff,而不是 A 类中的 doStuff。
我可以做些什么来防止这种情况发生吗?
最佳答案
Is there anything I can do in order to prevent this from happening?
是的,您需要通过显式引用您想要调用的方法来调用该方法,而不是在实例上动态分派(dispatch)它:
var A = Class.extend({
init: function(){
A.prototype.doStuff.call(this); // always invokes doStuff from A
},
doStuff: function(){
// does stuff on the super class
}
});
动态调度是自然且预期的行为。通常,您还会在 B::doStuff
中对 A::doStuff
进行 super
调用。
请注意,这与 super
调用或使用 Resig 的语法糖没有任何关系。
关于javascript - John Resig 继承类和重写方法 - 调用错误的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29565101/
这需要是一个 C++ 程序: Write a complete C program to enter a first name, middle name and last name in separa
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 7 年前。 Improv
有一个大的姓名表,全部为字符串“Name Surname” 需要更新整个表,将字符串设置为“Name FirstLetterOfSurname”,即。 “John Citizen”变为“John C”
$(".name:not(:empty)").text("John"); $(".special").filter( function() { return $(this).text() !=
我正在尝试将一个子集中的所有元组加在一起。 到目前为止我有: list(itertools.combinations(((1, 'aa'), (2, 'bb'), (3, 'cc'), (4, 'dd
涵盖了验证部分。 只是想将电子邮件解析成它们的组件。 假设电子邮件有效... 我能否只向后查找第一个“@”以及之后的所有内容? 然后向后查找一个空格,后面的所有内容都是电子邮件地址减去引用的名称? 最
我正在使用 C# (asp .net),并且我有一个文本框,它接受在数据库上执行查询的名称条目。 我想使用 IN 子句获取所有可能的值,但在我的 C# 页面中我得到 1 个字符串 例如 'john s
以列表(L)为例: 约翰,约翰,约翰,约翰,乔恩 我们要假定一个项目是正确的(例如在这种情况下是约翰),并给出它是正确的概率。第一次(而且很好!)尝试:MostFrequentItem(L).Coun
John Major 等式是否可以证明函数外延性(可能依赖于安全公理)? Goal forall A (P:A->Type) (Q:A->Type) (f:forall a, P a) (g:fora
有一个数组,我想搜索包含'john'(这四个字母)的名字。 bool 值将返回 true。 const dragons = ['Tim', 'Johnathan', 'Sandy', 'Sarah']
为了让我接管 Matrix,我首先需要从中移除 John Wick。他非常善于隐藏(很明显),所以他把自己分成了一个列表和列表中的列表。例如: environment = ["a", [**"j"**
我想找到一段英文文本中嵌入的所有人名,例如 John 等。在 C++ 中执行此操作的最佳方法是什么? 最佳答案 您应该使用工具包 - 请参阅 http://en.wikipedia.org/wiki/
我指的是 this article .我基本上是在创建一个带有 init 函数的类,该函数设置了一个 options 属性。见http://jsbin.com/usaboh/1/edit对于工作示例(
我指的是 this article . 在其中,他定义了一个看起来像这样的函数: function makeClass() { return function _class() {
我正在尝试使用 John Resig 的继承类来扩展我正在开发的一些类。这些类具有被重写的方法。尽管如此,这些方法的原始版本也应该被调用。我的问题是,当我尝试调用父类(super class)上的方法
嘿,我尝试实现 John 制作的一个类 Watermark . 我被困住了,想知道是否有人可以帮助我....添加了提到的 2 个类(class)在 wpf 上:
我有一个看起来像这样的模板: " id="Edit.ID" name="Edit.ID" /> test
在他的书“Javascript Ninja 的 secret ”中,John Resig 写道: Although dynamic code evaluation has been maligned
所以我的目标是使用John Resig's templating engine . 我需要向函数传递一个包含"template"的变量。然而,问题是我需要传递类似的东西: console.log("
我进行了一些研究,但没有发现与我需要的东西完全相关的东西,而且每当尝试创建表达式时,它总是与我的需要有一点偏差。 我尝试了一些类似 [AZaz09]{3,8}\-[AZaz09]{3,8} 的方法。
我是一名优秀的程序员,十分优秀!