美文网首页
关于for..in..你必须知道的事

关于for..in..你必须知道的事

作者: 被代码耽误的裁缝 | 来源:发表于2022-05-16 12:09 被阅读0次

先说结论:for..in..会遍历对象的自有属性及其原型链上的属性,所以要保证预期的话可以用obj.hasOwnProperty(key)去判断是否是对象的自有属性。

我们知道for..in..可以用来遍历对象,那么遍历出来的属性是否是你的预期呢?什么时候超出了你的预期?我们来看下面的代码

function Person(name) {
    this.name = name;
}

Person.prototype.eat = function(){
    console.log("eat");
}

let xiaoming = new Person('xiaoming');

function Doctor(age) {
    this.age = age;
}

Doctor.prototype = xiaoming;

let xiaohong = new Doctor(18);

console.log(xiaohong);

我们采用了原型链的继承方式,打印出来的xiaohong是{age: 18}

当我们使用for..in..遍历时,预期如下:

let arr = [];
for(let key in xiaohong){
    arr.push(key);
}
console.log(arr);
// 预期打印结果:['age']

实际的打印结果:['age', 'name', 'eat']

结论:

for..in..会遍历对象的自有属性及其原型链上的属性,所以要保证预期的话可以用obj.hasOwnProperty(key)去判断是否是对象的自有属性

相关文章

  • 关于for..in..你必须知道的事

    先说结论:for..in..会遍历对象的自有属性及其原型链上的属性,所以要保证预期的话可以用obj.hasOwnP...

  • 关于写作你必须知道的事

    报名弗兰克写作返现训练营 朋友圈推荐语: 如果只能选一门写作课,那么弗兰克的动手返现训练营你一定不能错过。快速写出...

  • 关于专升本,你必须知道的事

    想必看到这篇文章的宝宝们应该有专升本提升学历的想法了,有想法就是好事。万事开头难,踏踏实实坚持下去。 统招专升本...

  • 关于投资,你必须知道的事

    01没钱的时候,怎么投资?投资自己的头脑,让认知升级,想办法堵住一个又一个最常见、最普遍、最可怕的思维漏洞,甚至要...

  • 关于成本你必须知道的事

    【独立思考、实践经验、系统分享】 本次分享的主题是成本。 成本,似乎是一道天堑,如何降本,是所有行业、所有商业行为...

  • 关于写作,你必须知道的事

    hi,我是十三 之前一直谈的都是读书的事情,今天我想谈一谈写作。 大家都知道,我的定位是个人成长,而成长一直是一个...

  • 关于比特币你必须知道的事

    这篇文章如果能写得再早一点的话,也许我就成了预言帝。但很可惜,我离预言帝差了一个勤奋。比特币经历了去年的疯狂后,现...

  • 关于眼科手术,你必须知道的事!

    很多人听说,眼科手术往往几分钟就结束了,觉得当个眼科大夫很简单。其实不然,眼睛像个无比精密的照相机,其健康又关系到...

  • 关于住房公积金你必须知道的事

    前面聊过了带薪年休假和社会保险的问题,再聊一聊跟我们每个人都息息相关的住房公积金问题。社会保险保障的是我们退休后的...

  • 关于读书你必须知道的那些事

    本年第四本书《如何阅读一本书》,作者:莫提默J艾德勒和查尔斯·范多伦。因为原著是国外的,读译本的时候有稍许的不适应...

网友评论

      本文标题:关于for..in..你必须知道的事

      本文链接:https://www.haomeiwen.com/subject/qcoiurtx.html