[英]Javascript nested function composition
我曾经用类来做到这一点,其中一个子类即ChildObj可以从父类即ParentObj扩展为一个全新的类,该类具有父类的所有功能并且仅替换一个方法即JobA使用通过继承覆盖的函数。
现在用 JS 函数式编程,我有一个问题。 如何用新的组合函数替换从 Parent 调用的旧函数JobA ?
注意: parentObj ie init是第 3 方库,我不想进行任何修改。 我只想使我当前的代码(基于类扩展)与用函数替换原始类的库的新版本兼容。
// Original code in main.js
var ParentObj = init;
function init(){
function JobA() {
console.log("JobA");
}
function JobB() {
console.log("JobB");
}
console.log("Init");
JobA(); //I want the called JobA HERE, to be the child's JobA
JobB();
}
// Extending it by replacing and wrapping, in extended.js
ParentObj = ( function(parent) {
function JobA() {
console.log("Child JobA");
}
function extendsInit() {
parent();
console.log("The extension");
}
return extendsInit;
})(ParentObj);
ParentObj();
来自 React 团队的引述: https ://reactjs.org/docs/composition-vs-inheritance.html
在 Facebook,我们在数以千计的组件中使用 React,我们还没有发现任何建议创建组件继承层次结构的用例。
/* in parent "class" */
this.JobA = function() {};
/* in the extendsInit method */
parent();
overrideMethods();
function overrideMethods(){
this.JobA = function(){
console.log('I\'m the overridden method!');
}
}
这可以在您的解决方案中模拟继承......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.