将PHP转换为JavaScript,自调用函数

converting php to javascript, self-calling functions

本文关键字:调用 函数 JavaScript PHP 转换      更新时间:2023-09-26

我在php中有这个自调用函数...

function listContent($haystack,$parent) {
    echo '<ul>';
    foreach ($haystack as $f) {
        if($f['parent'] == $parent) {
            echo '<li>';
            echo $f['name'];
            $this->listContent($haystack,$f['fileId']);
            echo '</li>';
        }   
    }
    echo '</ul>';
}

我正在尝试像这样用javascript(jQuery插件)编写

    var drawTree = function(self,parent){
        console.log('running...');
        var gd = self.data('galleryData');
        var html = '<ul>';
        for (i = 0; i < gd.length; ++i) {
            if ( (gd[i]['isFolder'] == true) && (gd[i]['parent'] == parent) ) {
                html += '<li data-folder="'+gd[i]['fileId']+'">';
                html += gd[i]['name'];
                self.data(drawTree(self,gd,gd[i]['fileId']));
                html += '</li>';
            }
        }
        html += '</ul>'
        return html
    };
    this.data('drawTree',drawTree); //to make callable outside of plugin initial execution

但是,似乎存在一些问题。

首先,在 PHP 中,对函数的所有调用都将在返回任何内容之前执行。然而,在javascript中,似乎首先返回对函数的第一次调用,然后返回后续调用。所以我的自我呼叫小技巧似乎毫无用处。

这样做的首选方法是什么?

问题到这里解决了。代码可能已经进化了一点,所以不完全相同,但问题是相同的。

jQuery插件中的自调用函数