组织JavaScript,PHP代码,以便在具有嵌套函数时易于阅读

organize javascript,php code for easy to read way when have nested functions

本文关键字:嵌套 函数 易于阅 PHP JavaScript 代码 组织      更新时间:2023-09-26

这是我的示例代码...

one();

function one()
{
    function abc()
    {
      //code 
    }

    function bcd()
    {
      //code 
    }
    abc();
    bcd();
}

这是关于PHP,JavaScript.我想在有或不使用面向对象的编程技术的情况下以易于阅读的方式构建此代码。

如何从函数一外部调用函数 ABC..?

有多种方法:

// when using one() as a constructor for an object
function one()
{
    this.abc = function() { };
    this.def = function() { };
}
obj = new one();
obj.abc();

// prototype
function one()
{
}
one.prototype.abc = function() { };
one.prototype.def = function() { };
obj = new one();
obj.abc();

// module pattern
function one()
{
    var abc = function () { };
    var def = function () { };
    return {
        abc: abc,
        def: def
    }
}
obj = one();
obj.abc();

// or just assign it as a property to your function
function one()
{
}
one.abc = function() { }
one.def = function() { }
one.abc();

选择适合您的任何内容。

示例中的

嵌套函数的作用域在函数内,并在函数 one() 完成后被丢弃;因此它们不会公开。

可以使用闭包来公开函数...JavaScript 闭包是如何工作的?...http://www.sitepoint.com/javascript-closures-demystified/......但是给出简单示例的最简单方法是使用函数创建的 abc 命名空间。

function abc() {
   abc.def = function () {alert("hello")}
}
abc(); // add def function to abc namespace.
abc.def(); // call def function which is part of the abc object.

为了避免对象符号,可以将变量传递给函数。

function abc(operator) {
   function def() {alert("hello")}
   if (operator == def) {def()}
}
abc("def");

然而,这变得比使用对象表示法更难阅读,因为我需要查看函数来确定 abc.def() 告诉我正在调用 def() 时发生了什么,它是 abc 的一部分。它会导致性能下降,因为每次调用都需要重新创建 def。