在JavaScript中的用法是什么?

时间:2013-08-05 21:39:04

标签: javascript

这些代码有什么区别?

1- move : function(a,b){ 
.  
.  
.  

}  
2- function move(a,b){
.  
.  
.  
}  

我知道第二部分是一个功能,但我对第一部分一无所知?你能回答我吗?

6 个答案:

答案 0 :(得分:4)

您的第一个示例本身就是无效的JavaScript。您可能将它视为某个库中某个非常大的对象初始化的一部分;即:

var Library = {
  // ...lots of lines

  move: function(a, b) { /*...*/ },

  // ...lots more lines
};

在这种情况下,它与您在任何属性初始化中看到的:相同。与此相同:

var object = {
  foo: 1,
  bar: 2
};

答案 1 :(得分:0)

第一个是对象的一部分(或应该是),并将一个函数定义为该对象的属性,而第二个定义当前作用域中的函数move()

答案 2 :(得分:0)

(1)move通常是一个属性,并且您正在为该属性分配一个函数。它是其他代码的一部分,而不是孤立的。例如:

var myObj = {
    sayHello: function() {
        console.log('Hello');
    },
    sayBye: function() {
        console.log('Bye');
    }
}

然后您可以像这样使用它:

obj.sayHello();
obj.sayBye();

(2)如你所说,它只是一个名为move

的函数

因此,你也可以'结合'两者:

function myHello(){
    console.log('Hello');
}

var myObj = {
    sayHello: myHello,
    sayBye: function() {
        console.log('Bye');
    }
}

答案 3 :(得分:0)

冒号通常用于定义对象中的属性,例如

obj = {
    myProp: "String",
    myFunc: function() {
        console.log('hello');
    }
}

console.log(obj.myProp);
obj.myFunc();

它们还用于三元运算符,例如

x = ( y >= 2 ) ? "greater" : "not greater";

相同
if (y >= 2)
{
    x = "greater";
}
else
{
    x = "not greater";
}

?说“如果是真的话”,:与“其他”相同。

答案 4 :(得分:0)

它本质上是函数表达式和函数声明之间的区别。您可以在MDN

上详细了解此信息

<强> TL:博士; 一个在加载时解释,另一个在运行时解释。

答案 5 :(得分:0)

请注意,Javascript中的函数本身就是对象(因而也就是变量)。

所以这些都完成了同样的事情:

1

var some_object = {};
some_object.do_something = function () {
    // function code
};

2

var some_object = {
    do_something: function () {
        // function code
    }
}

3

var some_object = {};
var some_function = function () {
    // function code
};
some_object.do_something = some_function;

4

var some_object = {};
function some_function () {
    // function code
};
some_object.do_something = some_function;

只有那些可能与你无关的区别是3和4在外部范围内有一个名为some_function的函数。否则它们是相同的。