var obj = {
name1: 1,
name2: 2
}
function myF(obj) {
console.log(obj.name1) // by idea it must return 1
};
myF(obj)
有人知道如何在函数中传递对象吗?
答案 0 :(得分:1)
是的对象是很好的参数。
var p1 = {
name: "Tom",
age: 23,
isMale: true
};
var p2 = {
name: "Alicia",
age: 21,
isMale: false
};
var p3 = {
name: "Landon",
age: 1,
isMale: true
};
function greeting(person) {
var str = '';
str += 'Hello my name is ';
str += person.name + ' ';
str += 'I'm a ' + person.age + ' year old ';
if (person.isMale) {
str += age > 18 ? 'man' : 'boy';
} else {
str += age > 18 ? 'woman' : 'girl';
}
if (person.age < 3) {
str = 'Bah'
}
console.log(str);
};
greeting(p1); // 'Hello my name is Tom I'm a 23 year old man';
greeting(p2); // 'Hello my name is Alicia I'm a 21 year old woman;
greeting(p3); // 'Bah';
当你有一组属于一起的值并且你不想单独传递它们时,对象是有益的(如果它们属于一起,它们很少应该自己传递。)
答案 1 :(得分:0)
这是非常常见的做法。许多库将使用config
对象,因此不必指定多个参数
示例:
function makeSquare(height, width, color, border)
可以更容易用
表示function makeSquare(config)
这样可以让用户更容易省略一些参数,比如你想要没有边框的makeSquare,如果你传递和反对,你就不需要包含边框参数。
带参数
makeSquare(10, 20, red, null)
与Obj
config = {
height: 10,
width: 10,
color: 'red'
};
makeSquare(config);
如果你有大量的配置选项,你可以看到这可以节省相当多的开发时间和空间