gpt4 book ai didi

javascript - toString() 如何在 javascript 中工作?

转载 作者:行者123 更新时间:2023-11-30 10:07:26 24 4
gpt4 key购买 nike

"J" + { toString: function() { return "S"; } }; // "JS"

为什么输出是“JS”?

当我这样做时:

 "J" + { someFoo: function() { return "S"; } }; // "J[object Object]"

为什么这不是“JS”?

我想弄清楚 .toString() 是如何在第一个 block 中使用的。

谢谢

最佳答案

toString 是一个特殊函数(在对象的原型(prototype)中),当需要对象的字符串化模式时调用它。

在您的情况下,加法运算符调用对象的 toString 方法。 From the specs :

  1. If Type(lprim) is String or Type(rprim) is String, then

    a. Return the String that is the result of concatenating ToString(lprim) followed by ToString(rprim).

但是,您可以覆盖此 native 方法,您已在第一个代码段中完成*。加法运算符只是调用自定义方法,它会产生您得到的结果。

在后面的代码片段中,toString 只是返回对象的默认值。

你可以在很多情况下看到这种情况发生,例如 alert({}) 从对象的原型(prototype)调用内部 toString 方法,因为 alert需要一个字符串作为参数。

(* 更准确地说:您没有重写 native 属性,而是为具有相同名称的对象创建了一个自己的属性,而不是从原型(prototype)链中搜索 native 属性。

关于javascript - toString() 如何在 javascript 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28461290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com