Ці можна (і правільна), каб выклікаць функцыю, якая вяртае масіў і непасрэдна выкарыстоўваць індэксны ключ?

Ці можна (і гэта правільны код)?:

var x = function(){ return [0, 1, 2, 3];}
console.log(x()[0]);

Ён кампілюецца нармальна з бурчаннем .. гэта працуе ў Chrome .. але гэта нармальна для іншых браўзэраў?

1
Гэта нармальна для выкліку функцыі, якая вяртае тып дадзеных х і выкарыстоўвайце х непасрэдна без першага прызначэння яго? Так, але толькі калі гэта мае сэнс у кантэксце вашага кода.
дададзена аўтар Benjamin Gruenbaum, крыніца
Гэта нармальна для выкліку функцыі, якая вяртае тып дадзеных х і выкарыстоўвайце х непасрэдна без першага прызначэння яго? Так, але толькі калі гэта мае сэнс у кантэксце вашага кода.
дададзена аўтар Benjamin Gruenbaum, крыніца
@epascarello для праверкі (нават большасць браўзэраў .. колькі ў нас ёсць? 4 .. 10?) і розныя версіі? так, гэта цяжка. Калі я быў упэўнены, што, калі ён працуе толькі ў канцы Chrome і IE - дык гэта нармальна, я не пытаўся. У PHP, напрыклад, гэтая функцыя з'явілася толькі ў апошніх версіях.
дададзена аўтар avasin, крыніца
Ваша назва Сэя «магчыма», але вы кажаце: «Гэта кампілюе нармальна з бурчаннем .. гэта працуе ў Chrome ..»
дададзена аўтар iConnor, крыніца
Ваша назва Сэя «магчыма», але вы кажаце: «Гэта кампілюе нармальна з бурчаннем .. гэта працуе ў Chrome ..»
дададзена аўтар iConnor, крыніца
Ваша назва Сэя «магчыма», але вы кажаце: «Гэта кампілюе нармальна з бурчаннем .. гэта працуе ў Chrome ..»
дададзена аўтар iConnor, крыніца
«Але гэта нармальна для іншых браўзэраў» Гм, гэта цяжка пазнаць сябе?
дададзена аўтар epascarello, крыніца

8 адказы

Так, гэта магчыма, і зусім нармальна.

Можна адзначыць, што вялікая частка вашага масіва бескарысна тут, хоць.

3
дададзена
Для jQuery патрабуецца вяртаць масіў часам, напрыклад, за $ .draggable() стрымліванне. Мне патрэбна некаторая інфармацыя з гэтага масіва, але на самой справе я сапраўды маю патрэбу ў 1 значэнні з масіва :) Дзякуй!
дададзена аўтар avasin, крыніца

Так, гэта магчыма, і зусім нармальна.

Можна адзначыць, што вялікая частка вашага масіва бескарысна тут, хоць.

3
дададзена
Для jQuery патрабуецца вяртаць масіў часам, напрыклад, за $ .draggable() стрымліванне. Мне патрэбна некаторая інфармацыя з гэтага масіва, але на самой справе я сапраўды маю патрэбу ў 1 значэнні з масіва :) Дзякуй!
дададзена аўтар avasin, крыніца

Так, гэта магчыма, і зусім нармальна.

Можна адзначыць, што вялікая частка вашага масіва бескарысна тут, хоць.

3
дададзена
Для jQuery патрабуецца вяртаць масіў часам, напрыклад, за $ .draggable() стрымліванне. Мне патрэбна некаторая інфармацыя з гэтага масіва, але на самой справе я сапраўды маю патрэбу ў 1 значэнні з масіва :) Дзякуй!
дададзена аўтар avasin, крыніца

Там няма прычын, чаму гэта ніколі не ў стане ў любым браўзэры. Ваша функцыя вяртае масіў, і таму няма ніякіх прычын, чаму вы павінны прысвоіць яго зменнай, а не выкарыстоўваць яго наўпрост, як у вашым прыкладзе кода.

var x = function(){ return [0, 1, 2, 3];}
console.log(x()[0]);

функцыянальна эквівалентны

var x = function(){ return [0, 1, 2, 3];}
var arr = x();
console.log(arr[0]);
2
дададзена

Там няма прычын, чаму гэта ніколі не ў стане ў любым браўзэры. Ваша функцыя вяртае масіў, і таму няма ніякіх прычын, чаму вы павінны прысвоіць яго зменнай, а не выкарыстоўваць яго наўпрост, як у вашым прыкладзе кода.

var x = function(){ return [0, 1, 2, 3];}
console.log(x()[0]);

функцыянальна эквівалентны

var x = function(){ return [0, 1, 2, 3];}
var arr = x();
console.log(arr[0]);
2
дададзена

Там няма прычын, чаму гэта ніколі не ў стане ў любым браўзэры. Ваша функцыя вяртае масіў, і таму няма ніякіх прычын, чаму вы павінны прысвоіць яго зменнай, а не выкарыстоўваць яго наўпрост, як у вашым прыкладзе кода.

var x = function(){ return [0, 1, 2, 3];}
console.log(x()[0]);

функцыянальна эквівалентны

var x = function(){ return [0, 1, 2, 3];}
var arr = x();
console.log(arr[0]);
2
дададзена

можа таксама зрабіць

console.log((function(){return [0, 1, 2, 3];})()[0])

ці гэта

console.log((function(){return [0, 1, 2, 3][0];})())
1
дададзена

можа таксама зрабіць

console.log((function(){return [0, 1, 2, 3];})()[0])

ці гэта

console.log((function(){return [0, 1, 2, 3][0];})())
1
дададзена