猿问

一小段js引来的问题

var x = 1;

var obj = {

  valueOf: function() {

    x = 2;

    return 0;

  }

};

console.log(x); //1

console.log(obj.valueOf()); //0

console.log(obj); //Object

console.log(obj == 0,x); // true 2

1问:为什么都是输出x,两者值不同?

2问:obj出来的是个Object,为什么和0比较会true?

3问:接上问,出现true,是因为==的类型转换吗?那我把obj里的valueOf改成其它对象名,为什么就变成false了(如下)?


var x = 1;

var obj = {

  asd: function() {

    x = 2;

    return 0;

  }

};

console.log(x); //1

console.log(obj.asd()); //0

console.log(obj); //Object

console.log(obj == 0,x); // false 2


暮色呼如
浏览 395回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答