从对象中获取对象的键

时间:2015-09-05 03:22:13

标签: javascript object

我有一个这样的对象,它是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"对于第二个函数等等。但是由于哈希调用函数,它返回哈希对象。

有没有办法从函数中获取对象的键(我只需要调用函数的相应键)

1 个答案:

答案 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"

Demo on JSBin