javascript - 在 javascript 中命名函数,同时使用 function myFunction() 语法

标签 javascript oop

我想在 MyNamespace 中命名一些函数。我想首先创建一个对象 MyNamespace,然后在其中定义函数。

如何在仍使用 function myThing() {...} 形式的情况下将函数分配给命名空间?这个语法会是什么样子?

不起作用的对象语法:

var MyNamespace = {
  function helloWorld() {
    console.log('hi!');
  }

  function goodbyeWorld() {
    console.log('I <3 Titanic');
  }
}

MyNamespace.helloWorld();

可以使用的对象语法,但不使用 function() {} 语法

var MyNamespace = {
  helloWorld: function() {
    console.log('hi!');
  },

  goodbyeWorld: function() {
    console.log('I <3 Titanic');
  }
}

MyNamespace.helloWorld();

也许我可以做 function MyNamespace.helloWorld() {...} 但这似乎不起作用。

最佳答案

你的第二个例子是最常用的方法。按此顺序使用“函数名称()”没有技术优势。还有另一种选择:

function wrapper() {
  function helloWorld() {
  }

  function privateFunction() { }

  return {
    helloWorld: helloWorld
  };
}

在这种情况下,您还可以声明命名空间私有(private)函数,就像那里的函数一样。 helloWorld 可以调用 privateFunction,但外部无法直接调用它。 (请注意,所有公共(public)函数都需要位于该返回的对象中)

自动实例化:

// in the ... insert my above example
window.mynamespace = (...)();

关于javascript - 在 javascript 中命名函数,同时使用 function myFunction() 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24685639/

相关文章:

javascript - 该 Node 库如何能够从任何(可能拥有的)域向我发送电子邮件?

c++ - 在抽象基类定义中使用未知类型

Java 8 从输入文件流式创建多个对象

c# - 如果虚方法被声明为抽象的

java - 这个设计模式有名字吗? (具有仅调用构造函数的实现的基类)

javascript - 我的脚本在 jsFiddle 中工作但在我的浏览器中不工作?

javascript - 一个输入组件,但每次出现的状态不同

php - 尝试每 10 秒打开一个页面

javascript 调用具有相同上下文的函数数组

C++程序从main开始执行到main结束?