【问题标题】:How can I have code inside a function that executes other functions in typescript / javascript?如何在 typescript / javascript 中执行其他函数的函数中包含代码?
【发布时间】:2012-11-09 20:46:38
【问题描述】:

我正在使用以下编码模式:

function submit() {

    function submitModalDone() {
        // do something
    }

    function submitModalFail() {
        // do something
    }

    $.ajax(
       {
           url: "xxx"
       })
       .done(submitModalDone)
       .fail(submitModalFail);
}

我将 submitModalDone 和 submitModalFail 放在提交函数中,因为它们仅从 $.ajax 调用。

但是,将我的代码按原样添加到函数末尾和所有子函数之后是个好主意。是否有更适合此的设计模式? $.ajax 代码和其他代码只是位于任何容器之外,这似乎很奇怪。

【问题讨论】:

    标签: javascript typescript


    【解决方案1】:

    我认为这是一种体面的描述性模式。

    但是,您可能希望这样构建它:

    var submit = (function () {
    
        function submitModalDone() {
            // do something
        }
    
        function submitModalFail() {
            // do something
        }
    
        return function () {
            $.ajax({
                url: "xxx"
            }).done(submitModalDone).fail(submitModalFail);
        };
    
    }());
    

    这样可以避免在每次调用 submit 时创建 submitModalDonesubmitModalFail

    【讨论】:

    • 这很有趣。如果提交有效,那么使用此模式是否真的不会创建 submitModal fail ?如果我需要传递一个参数,比如链接,那么我怎么能用你的模式来做呢?
    • 从 js 的角度来看,不,那不是真的。函数 submitModalFail 将被创建但不会被执行。您在该函数中创建的任何模态等都不会被创建,因为该函数没有被执行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 2015-11-03
    相关资源
    最近更新 更多