如何&为什么在代码中使用SUPER
How & Why to use SUPER in code?
我与一些高级JavaScript人员合作,他们在代码中使用了SUPER关键字。我承认,我不太清楚一个人如何以及为什么可以使用它。
有人能指导我或教我如何精通它的用法和推理吗?
以下是一些例子:
openup: function( $super ) {
$super();
this.shop.enable_access();
}
addLeft: function( data ) {
var cell = Element('td');
if ( data.item_data ) {
var item = new SRIL(data.item_data);
item.attach(cell);
item.show();
}
return cell;
}
var SRIL = Class.create(Module, {
initialize: function( $super, data ) {
$super({ dom: 'show_line' });
this.data = data;
if ( data.Type[0] == 'Car' ) {
//some code
}
else {
// some code
}
}
});
JavaScript没有这样的东西。
更新:您应该查看此处使用的库的文档。这是一个库功能,而不是语言功能。
由于Javascript没有经典继承,而是根据原型/函数模型进行结构,开发人员已经进行了各种尝试来重新创建经典模型。super
就是其中一个策略的一部分。它解决的特殊问题是在子对象与父对象具有相同方法(即使只是构造函数)的情况下。如果不将super
创建为父方法的别名,则访问此类方法会变得有些麻烦(在某些情况下,甚至不可能)。
John Resig有一个包装可以很好地展示这一点。注意他在第一个例子中使用_super()来调用父对象的dance方法。
相关文章:
- 从桌面读取python文件时高亮显示代码
- 如何将函数包装在函数中以避免代码重复
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 货币代码为欧元-金额的格式不应包含小数
- Regex代码只允许一个空格
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 从var向代码隐藏函数传递值
- 如何动态插入jquery代码
- 如何在php变量中嵌入JQuery代码
- 代码不会验证
- 如何从rails中的代码中删除新行( )
- Angularjs代码未在匿名函数中运行
- 如何做到这一点,使代码在不传递条件后执行函数
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 面向对象的Javascript代码在IE7中不起作用
- 将 jQuery 代码添加到 Index.aspx 页面
- 为什么忽略了eval()代码中的语法错误
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- 如何&为什么在代码中使用SUPER