我目前正在做以下事情:
var item1 = new Object();
item1.name = 'a & b';
item1.description = 'Do a & then do b';
item1.untouched = 'Dont touch this';
var item2 = new Object();
item2.name = 'c';
item2.description = 'Do something else';
item2.untouched = 'Dont touch this';
uppercaseProperties = function( properties, obj ) {
properties.forEach( function( p ) { obj[ p ] = obj[ p ].toUpperCase() } );
return obj;
}
[item1, item2].map( function( item ) {
return this.uppercaseProperties( ['name', 'description'], item );
}, this );
为了简洁和表达,我更倾向于使用map
代替forEach
,例如
uppercaseProperties = function( properties, obj ) {
properties.map( function( p ) { return obj[ p ].toUpperCase(); } );
return obj;
}
但这不起作用,因为它只返回修改后的属性,而不是整个对象。因此,我在这里需要做的是在功能上访问obj
的成员x
。现在我显然可以编写一个能够实现这一功能的函数,但是我想知道JavaScript是否有任何原生的东西? (FWIW,C++ has。)