繁体   English   中英

Javascript嵌套函数组合

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM