toString 在 IE 中不起作用

2024-04-03

我在 javascript 中有一个类定义了 toString 方法,但是当我想在页面中打印它时,它总是打印[object object]在 IE(6-8) 中。

但它可以在 firefox 或 chrome 中工作(在下面的示例中它们都打印“kk”)。

我想知道为什么?

这是示例代码:

function Person(name){
  this.name=name;
}
Person.prototype.toString=function(){
  return this.name;
}
var p=new Person('kk');
document.getElementById('dis').innerHTML=p.toString();

问题是什么?


顺便说一句,这是我的应用程序中的代码:

function inherit(pro) {
    function F() {};
    F.prototype = pro;
    return new F();
}
var Class = function() {
    var clazz = null,
    pros = {}; // root of chain
    for (var i = 0; i < arguments.length; i++) {
        var arg = arguments[i];

        if (typeof arg === "function") {
            arg = arg.prototype;
        } else {
            if (arg.init) {
                clazz = arg.init;
                delete arg.init;
            }
            var o = arg;
            arg = (function() {
                function F() {};
                F.prototype = pros;
                return new F;
            })();
            for (var key in o) arg[key] = o[key];
        }

        pros = arg;
    }

    clazz.prototype = pros;
    return clazz;
};

var Person = Class({
    init: function(name) {
        this.name = name;
    },
    toString: function() {
        return this.name;
    }
});

function init() {
    var p = new Person('kk');
    document.getElementById('dis').innerHTML = p.toString();
}
window.onload = init;

截屏:


其实上面的评论并不正确。尽管您可能无法覆盖元素上的默认原型方法,但您可以为自己的类型执行此操作。问题是 toString 没有作为代码片段中的键返回:

for (var key in o) arg[key] = o[key];

如果添加以下内容,事情将按预期进行:

if (o.toString !== Object.prototype.toString) {
   arg.toString = o.toString
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

toString 在 IE 中不起作用 的相关文章

随机推荐

  • Callable 应该优先于 Runnable 吗?

    我已经明白了之间的区别Runnable and CallableJava 中的接口 从 Java 1 5 开始 添加了额外的功能Runnable接口并被调用Callable以保持向后兼容性 我的问题是现在我们有Callable接口 我们应该
  • GraphQL 请求错误 - 未知参数“slug”

    我正在尝试将我的 index js 页面链接到文章模板 以使用 slug 和显示来自中间件 Drupal 站点的数据createPages 我的 index js 页面和我的页面上的数据正确显示createPages将文件路径更改为后似乎没
  • OpenCL 在调用 clGetPlatformIDs 时崩溃

    我是 OpenCL 新手 在配备 Intel R HD Graphics 4000 运行 Windows 7 的 Core i5 计算机上工作 我安装了支持 OpenCL 的最新 Intel 驱动程序 GpuCapsViewer 确认我有
  • 何时在 Jersey 资源中使用 @Singleton

    我有一个访问数据库的泽西岛资源 基本上它在资源初始化时打开一个数据库连接 对资源的方法执行查询 我观察到 当我不使用 Singleton 时 数据库会根据每个请求打开 我们知道打开连接真的很昂贵 对吧 所以我的问题是 我应该指定资源是单例的
  • 为什么我的 React-Testing 库查询都不起作用?

    我正在使用 Jest Testing Library 编写 UI 单元测试 组件没有在 DOM 上渲染 罪魁祸首是组件 RequireScope 它单独包装了所有组件 换句话说 每个组件都会返回 return
  • 表格部分标题上方的白色分隔符

    我在表视图分隔符方面遇到了一个非常奇怪的问题 我已将分隔符颜色设置为深灰色 这在单元格下方效果很好 但由于某种原因 我的部分标题之前有一个白色分隔符 请参见 11 月上方的屏幕截图 当我将分隔符样式设置为无时 该线消失 表明它是分隔符 如何
  • WPF 中的 2D CAD 应用

    我正在尝试在 WPF NET 4 0 中编写一个类似 CAD 的应用程序 它需要能够显示大量 2D 点 线 它将用于通过鼠标悬停时的缩放 平移 旋转和点捕捉来显示整个城市的 CAD 平面图 现在我纯粹使用WPF 我从 CAD 文件中读取对象
  • 调整控制模板并仍然尊重操作系统的主题?

    在 WPF 中 如何修改标准控件的模板 使其稍后尊重操作系统的当前主题 如果我只是在混合中 编辑模板的副本 它只会给我当前运行主题的模板 它是否正确 因此 当我应用修改后的模板并在不同的主题上运行应用程序时 它看起来总是一样的 对于自定义控
  • 如何在 iPhone 上使用活动指示器视图?

    活动指示器视图在许多应用程序中都很有用 关于如何在 iPhone 上添加 激活和关闭活动指示器视图有什么想法吗 这里欢迎所有的方法 Create spinner UIActivityIndicatorView alloc initWithA
  • 如何在 Rails 中构建投票/调查类型应用程序

    我试图了解如何在 Rails 中创建民意调查 调查应用程序 现在我有以下模型 Poll id question string answer 1 string answer 2 string answer 3 string answer 4
  • 使用 openssl 而不是 mcrypt 在 PHP 中解密 AES-256-CFB

    下面的函数正确解密php5中的数据 function decrypt mcrypt key str str base64 decode str iv substr str 0 16 str substr str 16 return mcry
  • Socialauth-android 与 Facebook 授权成功,但验证码为空

    我正在使用socialauth android 让我的 Android 用户在 Facebook 上进行身份验证 我的问题如下 我可以成功显示 Facebook 登录页面 用户可以在其中输入凭据并授权我的应用程序 授权完成后 应调用 Soc
  • 为作为单独进程运行的 MAF 插件指定一个自定义名称

    我在单独的进程中使用 MAF 托管加载框架 激活我的插件 问题是它为每个进程提供了默认名称 AddInProcess32 作为单独进程运行的插件 我可以为 MAF 创建的流程指定一个自定义名称吗 如果是这样怎么办 PS 为什么我想给自定义名
  • 在 Seekbar 上注册 LongClick 侦听器

    在android中 我是否可以在搜索栏上注册长按监听器 我已经这样做了 mySeekBar setLongClickable true mySeekBar setOnLongClickListener new OnLongClickList
  • graph_from_place OSMNX 的响应时间极长

    我正在尝试下载墨西哥地图以避免使用查询save graphml并避免较长的响应时间graph from place 但我已经让这段代码运行了近六个小时 并且完全没有任何反应 import osmnx as ox ox config use
  • 为什么 throw new SkipException() 会跳过我的所有方法?

    为什么 throw new SkipException 会跳过所有类中的所有方法 第一类有一个方法失败 因此该类中的其余方法将被跳过 并且跳过计数器设置为 0 第二类应该执行所有方法 并且所有方法都应该传入第二类 因为跳过计数器设置为 0
  • 解压到当前目录,同时保留文件结构

    我在一个目录中 并且有一个包含文件和目录的 zip 文件 我需要将该文件解压缩到当前目录中 但保留文件结构 unzip myfile zip 将在当前目录中创建一个 myfile 目录 这不是我想要的 unzip j myfile zip
  • java.lang.VerifyError:使用发布 APK 时,验证程序拒绝了 Lollipop 上的类

    当我在 APK 上安装我的发布版 APK 时 出现此错误5 x设备 当我从 Android Studio 推送相同的代码 或者如果我在4 x device java lang VerifyError Verifier rejected cl
  • Java - dist 和deploy 文件夹之间的区别

    请原谅我提出一个新手问题 但是 dist 和 deploy 文件夹有什么区别 看起来像是同一件事 都包含文件的 jar 但是 当您清理并构建项目时 看起来只有 dist 文件夹被更新 部署文件夹如何更新 Thanks 我假设您使用的目录布局
  • toString 在 IE 中不起作用

    我在 javascript 中有一个类定义了 toString 方法 但是当我想在页面中打印它时 它总是打印 object object 在 IE 6 8 中 但它可以在 firefox 或 chrome 中工作 在下面的示例中它们都打印