为什么每个JS对象都有一个未定义的属性 [英] Why does every JS object have one undefined property

查看:187
本文介绍了为什么每个JS对象都有一个未定义的属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  let obj = {a:'a',b:'b'}; 
for(let p in obj){
console.log(p);
}

输出:

  a 
b
未定义

>

这不是一个属性,它是 return of function 打印。



示例:

  console.logger = function(p){
console.log(p);
returnlogged
}
var obj = {a:'a',b:'b'};
for(var p in obj){
console.logger(p);
}

a //记录属性
b //记录属性
logged//记录logger函数的返回值,undefined如果没有返回值


let obj = {a:'a',b:'b'};
for (let p in obj){
   console.log(p);
}

Output:

a 
b
undefined

What's up with the undefined property?

解决方案

That's not a property, it's the return of function that developer tools prints.

Example:

console.logger = function(p){
           console.log(p);
           return "logged"
      }
var obj = {a:'a',b:'b'};
for (var p in obj){
   console.logger(p);
}

a          // logs the property
b          // logs the property
"logged"   // logs the return of logger function, undefined in case nothing's returned

这篇关于为什么每个JS对象都有一个未定义的属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆