关于prototype疑问 2

Object.prototype.contain = function(obj){
  for(var index in this){
    console.log(this[index]);
    if(this[index] === obj){
      return true
    }
  }
  return false;
}
var o = {'name':'Tim','city':'Beijing'};
console.log(o.contain('aaaa'));

console.log(this[index]);
的打印结果为什么会有个
(obj){...}
谢谢!

image.png

阅读 1.2k
1 个回答

你通过原型的方式增加了一个contain方法,在对this执行for..in循环时,也会对原型链上的可枚举属性进行遍历,所以会打印出this.contain对应的方法,也就是上面输出的内容。

for...in 循环的详细用法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题