我正在尝试定义一个名为"HTML"的类来扩展 Nokogiri - 它使用模块.
我尝试了以下方法:
require 'nokogiri'
class HTML
include Nokogiri
end
Run Code Online (Sandbox Code Playgroud)
和
require 'nokogiri'
class HTML
extend Nokogiri
end
Run Code Online (Sandbox Code Playgroud)
但到目前为止,类HTML仍然无法继承nokogiri中的所有函数.所以像这样的东西不起作用:
doc = HTML.new
doc.HTML(open('http://www.google.com/search?q=tenderlove'))
Run Code Online (Sandbox Code Playgroud)
用于#的未定义方法`HTML'(NoMethodError)
有谁知道如何设法继承模块的所有方法的类?
有没有办法在Android中扩展Bitmap类?我有一种感觉,你不能,但我想创建一个代表一个下降对象的位图类(这些对象从屏幕顶部落下的数量不确定,每个都必须执行一些一种碰撞检测).我可以扩展/实现位图类来创建我想要的自定义类吗?
很多人都知道,javascript delete关键字使用起来有点棘手(见这里).是否可以重新实施或修改它?我有一个多次引用的对象,我想删除首先删除所有引用.像这样:
var oj = new OrangeJuice();
var juice = oj;
var beverage = oj;
var allRightSunnyD = oj;
delete oj; //I want this to delete the actual object
Run Code Online (Sandbox Code Playgroud)
我不希望垃圾收集器找到所有的引用,让我说我知道引用的位置,我只想重新实现删除也去掉果汁,饮料和allRightSunnyD.我意识到我可以实现一个OrangeJuice.delete()功能,但我想知道是否有办法正确实现.就像javascript onDelete()在删除对象之前调用回调函数一样.
真是一个简单的问题.
我正在重新编写一个网站,我将它全部转换为OOP并将其全部放入模板中.
我有多个类,但我想从一个单独的文件/类中扩展其中一个.
我是否需要require_once()父类来扩展它?
我猜你这么做但我只是想确定一下.
提前致谢!
我决定尝试JavaScript天才John Resig的"简单JavaScript继承",详见本博客页面:
http://ejohn.org/blog/simple-javascript-inheritance/
我很好奇如何使用调用super方法的代码覆盖方法.换句话说,假设我从Person类开始:
var Person = Class.extend({
init: function ( name, age ) {
this.name = name;
this.age = age;
}
});
Run Code Online (Sandbox Code Playgroud)
我扩展了Person类来创建一个新的类Worker:
var Worker = Person.extend({
init: function ( name, age, occupation ) {
this.name = name;
this.age = age;
this.occupation = occupation;
}
});
Run Code Online (Sandbox Code Playgroud)
在两个版本的init方法中重复了代码.无论我使用哪个类,都会执行以下两行:
this.name = name;
this.age = age;
Run Code Online (Sandbox Code Playgroud)
好像我应该能够调用人员类的初始化从内法英雄类的初始化方法,然后在代码与额外的行抛出的职业属性.
但是,我不能用Resig先生的代码那样做.以下不起作用:
var Worker = Person.extend({
init: function …Run Code Online (Sandbox Code Playgroud) 我想$.fn.modal在Bootstrap/jQuery中进行扩展,这样我的扩展版本可以在通过传递额外选项初始化模态之前"做事".我试过这个,就像我做一些时间来扩展jQuery原型:
var modal = $.fn.modal;
$.fn.modal = function() {
this.each(function() {
// do stuff
});
modal.apply(this, arguments);
}
$('#modal').modal(); // fails
Run Code Online (Sandbox Code Playgroud)
上面的例子不起作用,虽然相同的模式适用于许多其他非bootstrap jQuery原型.
这是一个演示它的小提琴:http://jsfiddle.net/eTWSb/(只是评论覆盖的东西,看它工作).
当你想要添加自定义功能时,我的印象是克隆一个函数然后将其称为"超级"是一个可行的选择.
有什么建议?
我有一个通知工具栏,它是一个模块.非常类似于facebook本机应用程序中的通知工具栏.在此工具栏中有3个区域:
每个区域都包含自己的模块(InvitesModule,RequestsModule,NotificationsModule).但是,每个都具有完全相同的功能:
我可以编写一个模块,比如InvitesModule并让我的另外两个模块扩展该模块,这样我就可以覆盖我需要的变量吗?
谢谢,如果我能更清楚,请告诉我
参见示例,为什么=和.extend之间存在这种差异:
d1=[1,2,3]
d2=[7,8,9]
d={1:d1,2:d2}
for key,value in d.items():
value=['a','b','c']
Run Code Online (Sandbox Code Playgroud)
输出:{1: [1, 2, 3], 2: [7, 8, 9]}
for key,value in d.items():
value.extend(['a','b','c'])
Run Code Online (Sandbox Code Playgroud)
输出:{1: [1, 2, 3, 'a', 'b', 'c'], 2: [7, 8, 9, 'a', 'b', 'c']}
.extend似乎具有写入功能=不.我想深入研究为什么这是令人高兴的.
我有以下问题,如果我有一个扩展LinearLayout的类,如:
public class ExtendedSeekbarLayout extends LinearLayout { ..}
Run Code Online (Sandbox Code Playgroud)
我想将其他参数传递给我的版面,我该怎么做?我知道我可以拥有以下构造函数:
public ExtendedSeekbarLayout (Context context) {
super(context);
}
public ExtendedSeekbarLayout (Context context, AttributeSet attributeSet) {
super(context, attributeSet);
}
public ExtendedSeekbarLayout (Context context, AttributeSet attributeSet, int defStyle) {
super(context, attributeSet, defStyle);
}
Run Code Online (Sandbox Code Playgroud)
但我希望有类似的东西:
public ExtendedSeekbarLayout (Context context, AttributeSet attributeSet, int defStyle, int position) {
super(context, attributeSet, defStyle);
init(position);
}
Run Code Online (Sandbox Code Playgroud)
我不确定这是否可能,如果没有,那将是什么方式呢?
非常感谢和欢呼,pingu
有没有一种方法可以将特定值插入到列表中的特定索引中。清单应完全为空
L = []
L.insert(2,177)
print(L)
Run Code Online (Sandbox Code Playgroud)
L应该给出L [,,2]的值
extend ×10
class ×4
javascript ×4
android ×2
module ×2
python ×2
abstract ×1
append ×1
backbone.js ×1
bitmap ×1
constructor ×1
for-loop ×1
include ×1
inheritance ×1
insert ×1
jquery ×1
list ×1
marionette ×1
modal-dialog ×1
oop ×1
php ×1
python-3.x ×1
resig ×1
ruby ×1