我试图弄清楚如何编写一些将对象作为参数并返回对象的代码。我了解如何返回字符串和数组,但我不太了解如何返回对象或将它们作为参数。一个小例子会很棒!
(编辑)对不起,如果我含糊其辞。我知道语法是一样的。我只是无法实际理解它。您希望如何(或为什么)返回一个对象或将一个对象作为参数。我正在通过代码讲述一个故事,并且试图弄清楚如何(通过控制台)输出返回对象的结果。我只是不明白你实际上是怎么做到的。
我试图弄清楚如何编写一些将对象作为参数并返回对象的代码。我了解如何返回字符串和数组,但我不太了解如何返回对象或将它们作为参数。一个小例子会很棒!
(编辑)对不起,如果我含糊其辞。我知道语法是一样的。我只是无法实际理解它。您希望如何(或为什么)返回一个对象或将一个对象作为参数。我正在通过代码讲述一个故事,并且试图弄清楚如何(通过控制台)输出返回对象的结果。我只是不明白你实际上是怎么做到的。
function helloObj(obj){
var newobj = {};
newobj.name = "Hello "+ obj.name;
return newobj;
}
var user = {name:"Peter"};
console.log( helloObj(user).name );
简单,就像普通变量一样
function example(yourObject) {
var newObject={};
newObject.title = yourObject.title;
newObject.name="testing123";
return newObject;
}
将对象传递给函数可能很棘手,JavaScript 通过引用传递对象,这意味着当您更改函数中的对象时,它将在函数完成后更改:
function sortmyarray(arr){
arr.sort();
}
function test(){
var arr=[3,2,1];
sortmyarray(arr);
console.log(arr);//[1,2,3]
}
test();
这仅在您调用更改对象的函数时有效,分配新值不起作用:
function sortmyarray(arr){
arr=[1,2,3];
}
function test(){
var arr=[3,2,1];
sortmyarray(arr);
console.log(arr);//[3,2,1]
}
test();
但是您可以通过从 sortmyarray 返回的值在 test 中为 arr 重新分配一个值
function sortmyarray(arr){
return "hello world";
}
function test(){
var arr=[3,2,1];
arr=sortmyarray(arr);
console.log(arr);//"hello world"
}
test();
至于为什么将对象传递给函数;这样你就可以重用代码了,这里是一个被重用的排序函数:
var myObj={
toString:function(){
var ret=[];i=0;
for(i=0;i<this.arr.length;i++){
ret.push(this.arr[i].col1);
ret.push("\t");
ret.push(this.arr[i].col2);
ret.push("\n");
}
return ret.join("");
},
arr:[
{col1:99,col2:1},
{col1:1,col2:3},
{col1:3,col2:1},
{col1:1,col2:99}
]
}
function sortmyarray(arr, byColNames){
var len=byColNames.length;
arr.sort(function(a,b){
var i=0;
while(a[byColNames[i]]===b[byColNames[i]]
&& i<len){
i++;
}
if(i===len){
return 0;
}
return(a[byColNames[i]]>b[byColNames[i]])?1:-1;
});
}
sortmyarray(myObj.arr,["col2"])
console.log(myObj.toString());
sortmyarray(myObj.arr,["col2","col1"]);
console.log(myObj.toString());
sortmyarray(myObj.arr,["col1","col2"]);
console.log(myObj.toString());