II0_0IIL 2022-05-13 09:18 采纳率: 87.5%
浏览 34
已结题

js运算符+和对象运算会怎样

function z(){
  var arr = [];
  var a = function(){ this.toString = function(){ return 9; };};
  arr[0] = new a();
  console.log(""+arr[0]);     //9
  console.log(arr[0]);          //a {toString: ƒ}
};
var w = new z();

为何前面有个""+ 就把里面的方法给执行了。两个console.log()的结果不应该是一样的吗

  • 写回答

3条回答 默认 最新

  • Rattenking Python领域优质创作者 2022-05-13 09:26
    关注

    ""+arr[0]这一句进行了隐式调用,就是会调用toString方法将arr[0]转字符串,你可以理解为""+arr[0].toString()!所以输出就是 ""+9="9"
    输出就是9

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 5月22日
  • 已采纳回答 5月15日
  • 创建了问题 5月13日