Javascript中函数之间的区别

时间:2018-04-27 21:15:08

标签: javascript function

我只是在学习JavaScript,而我正在研究其他人的代码以便学习。我试图解决的一件事是在JavaScript中做同样事情的不同方式。

我的问题是:

function create(){};create: function(){};相同吗?

如果没有什么区别?何时使用单一的打字方式和另一种方式?结肠是什么意思?

2 个答案:

答案 0 :(得分:3)

这是创建函数的最标准方法:

function create(){
    console.log("inside function");
}

如果函数是对象的属性,则使用冒号:

myobject = {
    create: function(){
        console.log("inside function");
    }
};

也可以分配功能:

var create = function(){
    console.log("inside function");
}

函数也是对象,javascript中它们没有区别,因为javascript很奇怪。以上是:

create.myproperty = true;

是有效的语法。

为了使它更奇怪,可以像上面那样分配匿名函数,但也可以自我调用:

(function () {
    console.log("inside function");
})();

这很麻烦,但遗憾的是在图书馆中使用了很多。

答案 1 :(得分:3)

仅冒号语法并不意味着您正在创建一个函数。在创建Object Literal时使用它。冒号充当赋值运算符(如=),为对象的属性赋予其值。

在JavaScript中,对象实际上只有属性(而不是方法)。但是,这些属性可以存储函数(函数是JavaScript中的数据)。

所以,这是一个创建一些属性的对象文字:

var myObject = {
  property1: "42",
  anotherProperty: true,
  aPropertyThatStoresAFunction: function(){
    console.log("You invoked the function stored in the property!");
  }
};

// Now, we can access the object's properties:
console.log(myObject.property1);
console.log(myObject.anotherProperty);
console.log(myObject.aPropertyThatStoresAFunction); // Notice here the actual function's code is logged?

// But, since functions are also bits of invocable code, if you access the function
// stored in the property and then add () on to the end of it, you can invoke the function
myObject.aPropertyThatStoresAFunction();