Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

chrome与本地node环境同样的代码输出的却不一致
下面是代码块:

var a = 0;
var obj = {
  a : 1,
  b : this.a,
  c : function(){
    return this.a;
  },
  d: () => this.a
}
console.log(obj.b)
console.log(obj.c() )
console.log(obj.d())

下面是chrome的输出:
image.png
下面是本地node的输出:
image.png

关于this

function fn()
{
  this.user = 1;
  return 1;
}
var a = new fn;
console.log(a.user); 
\\\\\\\\\\\\\\\\\\\\\\
function fn()
{
  user = 1;
  return 1;
}
var a = new fn;
console.log(a.user); 

关于这个问题,我本来想提问为什么分割线之上输出的是1,分割线之下输出的是undifined;但是在我写的时候突然有这么一个解释,不知道对不对,我写一下:
第一个fn,输出的是构造函数fn生成的对象a的属性,而且在声明对象的时候将自己的属性赋值为1;
第二个fn下面,执行构造函数时将全局变量user赋值为1,a并没有属性user,所以输出为undifined.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
603 views
Welcome To Ask or Share your Answers For Others

1 Answer

等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...