这是很简单的事,它继承应用程序是伟大的:
您只需返回任何你想要的,也许通过方法返回的,后来在其他功能上重新使用它,并建立它。
举例如下:
function a(){
var b;
//assignment to b and other stuff
return b;
};
// or
function a(){
var b, result;
//assignment to b and other stuff
returnInitial: function() {
return b;
}
// other stuff with b
return result;
};
稍后,可以使用所谓的“寄生继承”,用所有局部变量和添加新的方法启动等功能,这里面全功能的,就像这样:
var a function() {
var b, result;
//assignment to b and other stuff
returnInitial: function() {
return b;
}
// other stuff with b
return result;
}
var extendedA function() {
var base = new a;
var b = a.returnInitial();
a.addToB = function (c) {
var sum = c + a.returnInitial();
return sum;
}
}
所以,你现在可以得到
var smt = new extendA();
var c = 12; //some number
var sumBC = extendA.addToB(c);
对于所有有这些伟大PRACT我建议yutube搜索道格克罗克福德关于js对象处理的讲座。
请注意,如果您未初始化新实例,则需要使用新的动态对象处理方法,因为JavaScript使用的动态对象处理可能会使原始对象崩溃。
你不能直接这样做,将'b'分配为'this'的属性,它将是'c'的属性。要么是,要么附加一个返回'b'的值的方法/函数。 (你将不得不在构造函数中创建该函数,它也不能用于原型方法) – 2013-03-02 20:21:31
我认为闭包在这种情况下会有帮助吗?但我可能是错的。 – aug 2013-03-02 20:27:07
代码不是我的,但我需要仅使用脚本和Scriptish来更改它。我无法做到全球化,故意将它制作成本地的,以防止用户写作。 还有一次:我在写USERSCRIPT。使用FIDDLER及其脚本引擎也不是很好的解决方案。 – KOLANICH 2013-03-02 20:47:02