我有一个这样的对象,它是key =>函数对的集合。
var hashes = {
"a": function () {
console.log($(this));
return 'Fanta';
},
'b': function () {
console.log($(this));
return 'Pepsi';
},
'c': function () {
console.log($(this));
return 'Lemonade';
}
};
hashes["a"]();
hashes["b"]();
我想从函数中获取密钥的名称,即我期望console.log($(this))返回" a"对于第一个功能," b"对于第二个函数等等。但是由于哈希调用函数,它返回哈希对象。
有没有办法从函数中获取对象的键(我只需要调用函数的相应键)
答案 0 :(得分:1)
以下是一种方法:
var hashes = {
'a': 'Fanta',
'b': 'Pepsi',
'c': 'Lemonade'
};
var logger = function( key, value ) {
console.log( key );
return value;
};
for ( var key in hashes ) {
if ( hashes.hasOwnProperty( key ) ) {
var value = hashes[ key ];
hashes[ key ] = logger.bind( null, key, value );
}
}
hashes.a(); // "a"
hashes.b(); // "b"
hashes.c(); // "c"