我们可以在JavaScript函数中通过引用传递变量吗?
我通过javascript函数计算给定点的行和列。我们可以在JavaScript函数中通过引用传递变量吗?,javascript,Javascript,我通过javascript函数计算给定点的行和列。 为了实现这一点,我必须声明全局变量 var global_row; var global_col; 这是函数体 function calculate_city_row_col(cur_city_id) { var r = 565; var c = 1; var max_city_id = 159895; do{ if((r%2) == 0) c++; max_city_id -
为了实现这一点,我必须声明全局变量
var global_row;
var global_col;
这是函数体
function calculate_city_row_col(cur_city_id)
{
var r = 565;
var c = 1;
var max_city_id = 159895;
do{
if((r%2) == 0) c++;
max_city_id -= r;
r--;
}
while(cur_city_id <= max_city_id)
//Saving Result in seperate row and column
global_row = r + 1; //Global Variable
global_col = c + (cur_city_id - (max_city_id + 1)); //Global Variable
}
是否有直接传递局部变量的方法?(不使用全局变量)
像这样
calculate_city_row_col(cur_city_id, city_row_ref, city_col_ref);
只需返回一个对象:
function calculate_city_row_col(cur_city_id)
{
var r = 565;
var c = 1;
var max_city_id = 159895;
do{
if((r%2) == 0) c++;
max_city_id -= r;
r--;
}
while(cur_city_id <= max_city_id)
return {
row: r + 1,
col: c + (cur_city_id - (max_city_id + 1))
};
}
var rowAndCol = calculate_city_row_col(1244);
var city_row = rowAndCol.row;
var city_col = rowAndCol.col;
函数计算城市行列(当前城市id)
{
var r=565;
var c=1;
var max_city_id=159895;
做{
如果((r % 2)=0)C++;
最大城市id-=r;
r--;
}
而(cur_city_id只需返回一个对象:
function calculate_city_row_col(cur_city_id)
{
var r = 565;
var c = 1;
var max_city_id = 159895;
do{
if((r%2) == 0) c++;
max_city_id -= r;
r--;
}
while(cur_city_id <= max_city_id)
return {
row: r + 1,
col: c + (cur_city_id - (max_city_id + 1))
};
}
var rowAndCol = calculate_city_row_col(1244);
var city_row = rowAndCol.row;
var city_col = rowAndCol.col;
函数计算城市行列(当前城市id)
{
var r=565;
var c=1;
var max_city_id=159895;
做{
如果((r % 2)=0)C++;
最大城市id-=r;
r--;
}
而(cur_city_id只需返回一个对象:
function calculate_city_row_col(cur_city_id)
{
var r = 565;
var c = 1;
var max_city_id = 159895;
do{
if((r%2) == 0) c++;
max_city_id -= r;
r--;
}
while(cur_city_id <= max_city_id)
return {
row: r + 1,
col: c + (cur_city_id - (max_city_id + 1))
};
}
var rowAndCol = calculate_city_row_col(1244);
var city_row = rowAndCol.row;
var city_col = rowAndCol.col;
函数计算城市行列(当前城市id)
{
var r=565;
var c=1;
var max_city_id=159895;
做{
如果((r % 2)=0)C++;
最大城市id-=r;
r--;
}
而(cur_city_id只需返回一个对象:
function calculate_city_row_col(cur_city_id)
{
var r = 565;
var c = 1;
var max_city_id = 159895;
do{
if((r%2) == 0) c++;
max_city_id -= r;
r--;
}
while(cur_city_id <= max_city_id)
return {
row: r + 1,
col: c + (cur_city_id - (max_city_id + 1))
};
}
var rowAndCol = calculate_city_row_col(1244);
var city_row = rowAndCol.row;
var city_col = rowAndCol.col;
函数计算城市行列(当前城市id)
{
var r=565;
var c=1;
var max_city_id=159895;
做{
如果((r % 2)=0)C++;
最大城市id-=r;
r--;
}
while(cur_city_id
我们可以在JavaScript函数中通过引用传递变量吗
不,JavaScript是纯粹的传递值(当你传递一个对象时传递的值是一个对象引用,但它仍然是一个值)
你的选择是:
让函数返回一个对象(或数组)
让函数接受对其更新的对象(或数组)的引用
function calculate_city_row_col(cur_city_id, result)
{
var r = 565;
var c = 1;
var max_city_id = 159895;
do{
if((r%2) == 0) c++;
max_city_id -= r;
r--;
}
while(cur_city_id <= max_city_id)
//Saving Result in seperate row and column
result.row = r + 1;
result.col = c + (cur_city_id - (max_city_id + 1));
}
除非在特定情况下有充分的理由使用#2,否则#1通常是最好的选择。例如,如果您在一个紧密循环中数千次调用此函数,则可能有理由重用单个对象(通过传入),而不是每次创建一个新对象
我们可以在JavaScript函数中通过引用传递变量吗
不,JavaScript是纯粹的传递值(当你传递一个对象时传递的值是一个对象引用,但它仍然是一个值)
你的选择是:
让函数返回一个对象(或数组)
让函数接受对其更新的对象(或数组)的引用
function calculate_city_row_col(cur_city_id, result)
{
var r = 565;
var c = 1;
var max_city_id = 159895;
do{
if((r%2) == 0) c++;
max_city_id -= r;
r--;
}
while(cur_city_id <= max_city_id)
//Saving Result in seperate row and column
result.row = r + 1;
result.col = c + (cur_city_id - (max_city_id + 1));
}
除非在特定情况下有充分的理由使用#2,否则#1通常是最好的选择。例如,如果您在一个紧密循环中数千次调用此函数,则可能有理由重用单个对象(通过传入),而不是每次创建一个新对象
我们可以在JavaScript函数中通过引用传递变量吗
不,JavaScript是纯粹的传递值(当你传递一个对象时传递的值是一个对象引用,但它仍然是一个值)
你的选择是:
让函数返回一个对象(或数组)
让函数接受对其更新的对象(或数组)的引用
function calculate_city_row_col(cur_city_id, result)
{
var r = 565;
var c = 1;
var max_city_id = 159895;
do{
if((r%2) == 0) c++;
max_city_id -= r;
r--;
}
while(cur_city_id <= max_city_id)
//Saving Result in seperate row and column
result.row = r + 1;
result.col = c + (cur_city_id - (max_city_id + 1));
}
除非在特定情况下有充分的理由使用#2,否则#1通常是最好的选择。例如,如果您在一个紧密循环中数千次调用此函数,则可能有理由重用单个对象(通过传入),而不是每次创建一个新对象
我们可以在JavaScript函数中通过引用传递变量吗
不,JavaScript是纯粹的传递值(当你传递一个对象时传递的值是一个对象引用,但它仍然是一个值)
你的选择是:
让函数返回一个对象(或数组)
让函数接受对其更新的对象(或数组)的引用
function calculate_city_row_col(cur_city_id, result)
{
var r = 565;
var c = 1;
var max_city_id = 159895;
do{
if((r%2) == 0) c++;
max_city_id -= r;
r--;
}
while(cur_city_id <= max_city_id)
//Saving Result in seperate row and column
result.row = r + 1;
result.col = c + (cur_city_id - (max_city_id + 1));
}
除非在特定情况下有充分的理由使用#2,否则#1通常是最好的选择。例如,如果您在一个紧密循环中数千次调用此函数,则可能有理由重用单个对象(通过传入),而不是每次创建一个新对象