JS原型一些方法

看图说话 栗子子在这里

var obj = {
  person: {
    name: 'joe',
    history: {
      hometown: 'bratislava',
      bio: {
        funFact: 'I like fishing.'
      }
    }
  }
};

obj.hash('person.name'); // 'joe'
obj.hash('person.history.bio'); // { funFact: 'I like fishing.' }
obj.hash('person.history.homeStreet'); // undefined
obj.hash('person.animal.pet.needNoseAntEater'); // undefined

 

 

关于原型的方法好像都不会哎   直接看答案啊!

best  practics

Object.prototype.hash = function(string) {
  var arr = string.split('.');
  return arr.reduce(function(pv, cv){
    return (pv) ? pv[cv] : pv;
  }, this);
}


//reduce 归并方法  四个参数 (pre next index array);
//返回值作为第一的参数传给下一项,第一次迭代发生在数组第二项上,第一个参数是数组第一项,第二项是数组第二项

 

reduce()方法再啰嗦两句 ,好像很牛逼的样子 

少年,我看你很有想法,来和我求和吧

var arr=[1,2,3,4,5];
m=arr.reduce(function(pre,next,index,this){
return pre+next;
});

alert(m);

 

//理解下上面的代码

 

还有个能看懂的理解下

Object.prototype.hash = function(string) {
  var current = this;
  var props = string.split('.');
  
  while (current && props.length) {
    current = current[props.shift()];
  }
  
  return current;
}

//shifit()方法  移除队列首项,和push  相反

 

posted on 2015-05-24 13:31  liuestc  阅读(176)  评论(0编辑  收藏  举报