javascript - 当我做警报(obj)时 valueOf 不工作?

标签 javascript html

这给出“[object Object]”:

<!doctype html>
<script>
var a={};
a.valueOf=function(){
    return "asd";
};
alert(a);
</script>

但这给出了“asd”:

<!doctype html>
<script>
var a={};
a.valueOf=function(){
    return "asd";
};
alert(""+a);
</script>

我能理解为什么我在第二个例子中得到“asd”。但在第一个示例中,我不应该也得到“asd”,因为我将对象放入警报函数(基本上最终会调用 value-of)吗?

最佳答案

覆盖 toString() 以获得您需要的结果:

var a={};
a.toString=function(){
    return "asd";
};
alert(a);

看看这个valueOf() vs. toString() in Javascript

关于javascript - 当我做警报(obj)时 valueOf 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6978174/

相关文章:

jquery - 使用带有 HTML5 和 jquery 的 phonegap 1.3.0 创建 android 应用程序时无限弹出错误?

javascript - AngularJS 从数组中计算两个动态值

php - 使用 PHP 或 JS 将表单值传递到其他页面

javascript - Facebook 评论不会出现在 extjs 容器中

php - 图像环绕覆盖的链接

javascript - 下拉菜单不显示

html - 是否可以在可折叠按钮组中的按钮之间添加边距而不在组周围添加任何边距?

javascript - jQuery 圆形菜单

javascript - jQuery 追加 DOM

javascript - AngularJS 异常高的内存消耗