これらのコードの違いは何ですか?
1- move : function(a,b){
.
.
.
}
2- function move(a,b){
.
.
.
}
2番目の部分が関数であることは知っていますが、最初の部分については何も知りませんか? それについて答えてもらえますか?
これらのコードの違いは何ですか?
1- move : function(a,b){
.
.
.
}
2- function move(a,b){
.
.
.
}
2番目の部分が関数であることは知っていますが、最初の部分については何も知りませんか? それについて答えてもらえますか?
最初の例は、それ自体が無効な JavaScript です。おそらく、どこかのライブラリで非常に大きなオブジェクトの初期化の一部としてそれを見ているでしょう。すなわち:
var Library = {
// ...lots of lines
move: function(a, b) { /*...*/ },
// ...lots more lines
};
その場合:
、プロパティの初期化で見られるのと同じです。これと同じ:
var object = {
foo: 1,
bar: 2
};
最初のものはオブジェクトの一部であり (またはそうあるべきです)、関数をそのオブジェクトのプロパティとして定義しますが、2 番目のものmove()
は現在のスコープで関数を定義します。
(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');
}
}
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 と 4some_function
には外側のスコープで呼び出される関数があることです。それ以外は同一です。