Df.717 2024-02-11 10:55 采纳率: 28.6%
浏览 1
已结题

包装对象undefined


var str = 'qwer';
            
            String.prototype.charAt = function(){};

            alert( str.charAt(2) );

这段代码的运行结果,为什么是undefined?
str.charAt(2)产生的包装对象,不就是要从原型String.prototype找charAt方法

  • 写回答

2条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2024-02-11 10:57
    关注

    参考通义千问和郭老师的小迷弟雅思莫了-编写提供,主要是为了帮助您快速解决问题,如下回答,您可以参考下,如有问题,评论区留言。

    在这段代码中,str.charAt(2) 的运行结果确实是 undefined,但这并不是因为包装对象找不到 charAt 方法。实际上,您重写了原生的 String.prototype.charAt 方法,将其替换为一个空函数:

    String.prototype.charAt = function(){}; 
    

    这样一来,当调用 str.charAt(2) 时,由于您已经重写了 charAt 方法,所以它将执行这个空函数,而这个空函数没有返回任何值(即返回了 undefined)。

    正确的原生 charAt 方法会接收一个参数(在这个例子中是索引 2),并返回该索引位置的字符。但在您提供的代码中,由于被替换为了空函数,因此无法得到索引 2 处的字符 'w',而是得到了 undefined。

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

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月11日
  • 已采纳回答 2月11日
  • 创建了问题 2月11日

悬赏问题

  • ¥15 Windows Script Host 无法找到脚本文件"C:\ProgramData\Player800\Cotrl.vbs”
  • ¥15 matlab自定义损失函数
  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图