【问题标题】:JavaScript myFunction : function(int x) vs function myFunction(int x)? [duplicate]JavaScript myFunction:函数(int x)与函数 myFunction(int x)? [复制]
【发布时间】:2012-10-01 07:40:37
【问题描述】:

可能重复:
What is the difference between a function expression vs declaration in Javascript?

在 JavaScript 中声明函数的两种方式有什么区别?

myFunction : function(variable) 
{

}

function myFunction(variable)
{

}

【问题讨论】:

  • 第一个 sn-p 是无效的,除非它在对象字面量的上下文中。如果您想知道函数表达式和声明之间的区别:stackoverflow.com/questions/1013385/…stackoverflow.com/questions/5403121/…。在 JS 中也不存在诸如 int 之类的类型提示(这也是无效的)。
  • 它在 var x = declare("...", { > });该语法实现了什么?我不能在这样的对象中使用常规语法吗?
  • 所以{ <<right here>> } 是一个对象字面量,myFunction 是它的一个属性,持有一个函数作为值。不过,在第一种情况下,您有一个函数表达式,而在第二种情况下,您有一个函数声明,这两者之间的区别之前已经彻底讨论过。
  • 所以 myFunction 是一个变量?为什么不是 myFunction = function(variable)?
  • 在第一种情况下,它是某个对象的属性,在第二种情况下,是的,我想可以说它是一个变量。如果您想了解对象的工作原理,请查看developer.mozilla.org/en-US/docs/JavaScript/Guide/…

标签: javascript


【解决方案1】:

您的第一个代码 sn-p 无效 - 它仅适用于对象;示例:

var object = {
    myFunction: function(variable) { }
};
// object.myFunction();


基本上有两种方法可以在 JavaScript 中定义函数:

function myFunction(variable) { }

var myFunction = function(variable) { };

不同之处在于:第一种类型的声明使用function 语句,因此允许您在声明之前使用该函数。示例:

console.log(myFunction());    // prints test
function myFunction(variable) { return "test"; }

阅读更多相关信息here

这对于第二种类型的函数声明是不可能的,它将一个匿名函数分配给一个变量。在声明变量之前不能使用函数。

【讨论】:

    【解决方案2】:

    一个是一种方法。另一个函数。

    定义函数

    function myfunction() {..}
    

    方法已定义

    myobject.mymethod = function() {...} ;
    

    方法是指向对象的属性/是该对象的函数

    实际上,这取决于您如何构建对象。函数通常用于非对象特定的全局库中,而方法与对象绑定以执行特定的功能。

    【讨论】:

    • “:”运算符是做什么的?
    • 定义方法的两个例子 myobject.mymethod = functionName or function() {...}; var myobject= { mymethod : function(params) { // ...做点什么 } };
    • : 定义键值对... property : value 其中属性可以是方法或变量,值可以是函数声明、定义或函数名,它只是指向函数的指针或类似 2 的值
    猜你喜欢
    • 1970-01-01
    • 2012-10-04
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 2019-10-30
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多