为什么在 JavaScript 中,'3 instanceof Number' == false,但 '3..method()' 会调用 Number.prototype.method?

2023-11-27

鉴于字面数字严格来说不是一个实例Number,为什么我可以调用原型方法Number (or String, or Boolean) 对应文字对象上的对象?这是跨浏览器的标准行为吗?

当这种情况发生时到底发生了什么?我怀疑它在调用方法之前将文字强制转换为相应的类型,因为当我检查时typeof this在方法中,它返回'object'而不是'number'.


文字不会被强制转换为实例。

内部发生的事情是创建一个实例,将值复制到该实例,并使用该实例执行该方法。然后实例就被销毁了。该文字实际上并未用于执行该方法。当像 String 对象一样使用字符串基元时,此“包装器”对象概念也可与字符串基元一起使用。这种行为是标准的。

3 是数字文字。不是 Number 类型的实例。 JavaScript 具有原始数字类型和本机 Number 对象。

From MDN:在要调用方法的上下文中 发生原始字符串或属性查找时,JavaScript 将 自动包装字符串原语并调用方法或执行 属性查找。

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

为什么在 JavaScript 中,'3 instanceof Number' == false,但 '3..method()' 会调用 Number.prototype.method? 的相关文章

  • 如何打开新选项卡并更改当前页面

  • AJAX 安全问题

    我希望能够解决一些关于 AJAX 安全性的问题 这是我试图理解的一个场景 假设我正在使用 AJAX 向页面请求一些半敏感材料 例如 我将把用户的 ID 传递给一个 php 文件 并返回一些关于他们自己的信息 现在 是什么阻止人们模拟此 Ja
  • 我可以通过什么方式混合 jQuery 和 vanilla JavaScript

    我有一个用普通 JavaScript 编写的 Web 应用程序 我想用 jQuery 动画来增强它 并使用我在各种 jQuery 插件中找到的一些功能 例如上传 http www uploadify com 可以通过什么方式将 jQuery
  • 使用 Ajax Jquery post 请求进行 Json 劫持

    昨天 我读了一些关于如何预防的好文章使用 Asp Net MVC 进行 Json 劫持 http haacked com archive 2009 06 24 json hijacking aspx 规则是 永远不要通过 get 请求发送
  • 有没有办法动态更改 jqGrid 的单元格值?

    这个问题可能已经被问过很多次了 但我想知道是否可以动态更改 jqgrid 的单元格值 我基本上有一个网格 它通过 JSON 字符串加载数据 在特定列的某些行上 该值可能为 null 因此 预先知道哪个行 ID 是一个问题 然后能够将 nul
  • JavaScript 字符串中的脚本标签[重复]

    这个问题在这里已经有答案了 我遇到一个问题 即 JavaScript 中带引号的字符串内有结束脚本标记 并且它正在杀死脚本 我认为这不是预期的行为 可以在这里看到这样的示例 http jsbin com oqepe edit http js
  • JAVASCRIPT - 为什么这个对象没有改变?

    function myFunc theObject theObject make Ford model Focus year 2006 var mycar make Honda model Accord year 1998 var x my
  • Javascript 对象属性名称

    在 C 中 可以将对象属性的名称作为字符串值获取 名称 对象 Property gt myProperty 这可以在 Javascript Typescript 中完成吗 Object Keys 是我找到的唯一东西 但它给了我所有的键 示例
  • 在上传之前预览图像 VUEjs [重复]

    这个问题在这里已经有答案了 我知道这个问题已经被问过 但我不知道如何在vuejs中使用代码 我尝试了很多但没有任何结果 我还添加了我的代码 有人可以帮帮我吗 这是我的代码 谢谢 html
  • jQuery:查找具有特定自定义属性的元素

    我只想找到具有特定自定义属性值的元素 例如 我想找一个div其具有属性data divNumber 6 var number 6 var myDiv data divNumber number 我尝试使用http api jquery co
  • onClick 处理程序在每个渲染周期触发

    我有这样的默认状态 this state selectedTab tab1 then 我的渲染方法是这样的 render const selectedTab this state return li tab1 li li tab2 li d
  • 如何将一个数组中的所有项目复制到另一个数组中?

    如何将数组的每个元素 其中元素是对象 复制到另一个数组中 以便它们完全独立 我不想更改一个数组中的元素来影响另一个数组 这里的关键是 数组中的条目是对象 并且 您不希望对一个数组中的对象的修改显示在另一个数组中 这意味着我们不仅需要将对象复
  • 检查用户设备的 GPS 是否开启

    我正在使用 jQuery Mobile 和 PHP 开发一个应用程序 我没有使用 Phonegap 或其他框架 我需要找到用户的geolocation 如果用户设备的 GPS 关闭 那么我无法获取位置 现在我需要查找用户设备的 GPS 是否
  • 通过 JavaScript 单击按钮/页面提交

    我想了解 asp net 框架如何知道何时单击了按钮 因此一旦收到请求 就会在服务器上触发其单击事件 我需要了解它是如何工作的 因为我想从 JavaScript 触发按钮的服务器单击事件 我能够从 JavaScript 执行页面提交 doc
  • 如何显示接下来的三个图像单击加载更多按钮

    我需要一个加载更多按钮来显示图像 页面加载时 我显示 3 个图像 单击 加载更多 按钮后 接下来的 3 个图像将显示在屏幕上 我尝试了下面的代码 但它不起作用 你能帮我解决这个问题吗 function item slice 0 2 show
  • jquery 中的函数返回未定义[重复]

    这个问题在这里已经有答案了 我在 jquery 中调用的函数返回未定义 我检查了该函数 当我对其进行调试时 它返回正确的数据 function addToPlaylist component type add to pl value pl
  • Angular JS - 使服务可以从控制器和视图全局访问

    假设我们有以下服务 myApp factory FooService function 然后 从控制器中 我会说 myApp controller FooCtrl scope FooService function scope FooSer
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • 在反应中访问回调内的 event.target

    我有以下课程片段 constructor props super props this timeout null search e gt clearTimeout this timeout this timeout setTimeout f
  • 如何在 React Native 中使用相同的 Firebase 数据库在两个应用程序之间进行通信?

    我有两个不同的应用程序使用相同的实时数据库 在第一个应用程序中 我发送的订单包含一些要保存在数据库中的数据字段 在另一个应用程序中 我只添加一个侦听器 firebase database ref userOrder currentUser

随机推荐

  • WM_COMMAND 在 C++ win32 中捕获按钮按下

    我正在尝试使用 c win32 获取按钮按下事件WM Command HWND hBtn HWND hBtnParent HWND UploadVideo HWND SelectVideoBTN UploadBTN HWND hWnd HI
  • 将 Interface Builder 中创建的 UITabBarController 设置为委托

    我使用选项卡栏模板创建了 iOS 应用程序 因此这里是带有栏按钮的 UITabBarController 一个问题是如何将其设置为委托 我发现它必须在 AppDelegate 中以编程方式设置 但我相信这是不可能的 因为我无法访问选项卡栏控
  • Python:从数字列表中删除负数

    问题是从数字中删除负数 When remove negs 1 2 3 3 6 1 3 1 执行后 结果为 1 2 3 6 3 1 结果应该是 1 2 3 6 3 1 发生的情况是 如果连续有两个负数 例如 1 3 那么第二个数字将不会被删除
  • 如何以编程方式更改 C# 中的程序集名称

    我想在 C 中以编程方式更改程序集的名称 有一种方法可以从项目属性中更改它 但我想以编程方式更改它 以便更改我的输出 exe 名称 任何技巧 您可以在构建后事件中执行此操作 这些脚本是在构建过程完成后执行的命令行脚本 ren TargetF
  • 如何对对象的属性值求和?

    我想对以下属性值进行求和PieData 我的预期输出是25515512 916952499 942468011 var PieData value 25515512 color 00a65a highlight 00a65a label R
  • HTML/CSS:使 div 对点击“不可见”?

    由于各种原因 我需要放置一个 大部分 透明的 div 在一些文字上 但是 这意味着无法单击文本 例如 单击链接或选择它 是否可以简单地使该 div 对于单击和其他鼠标事件 不可见 例如 overlaydiv 覆盖了文本 但我希望能够通过单击
  • 剃刀视图 » 字符呈现为 »

    字符似乎在剃刀视图中渲染为 我努力了 and Html Raw 但问题并没有消失 我对 ASPX 视图没有这个问题 另外 文化被设定为
  • Python-docx - 如何更改表格字体大小?

    table document add table rows 1 cols 1 hdr cells table rows 0 cells hdr cells 0 text Qty 我必须更改一行一列表格中文本 数量 的字体大小 我该怎么做 您
  • 依赖注入和单例设计模式

    我们如何确定何时使用依赖注入或单例模式 我在很多网站上读过 他们说 使用依赖注入而不是单例模式 但我不确定我是否完全同意他们的观点 对于我的中小型项目 我肯定会直接使用单例模式 例如记录器 我可以用Logger GetInstance Lo
  • 在 Python 中迭代一系列日期

    我有以下代码可以做到这一点 但我怎样才能做得更好呢 现在我认为它比嵌套循环更好 但是当你在列表理解中有一个生成器时 它开始变得 Perl one linerish day count end date start date days 1 f
  • 如何使用Spring 3.x开发https站点?

    我是基于 Spring 的 Web 开发的新手 我们的网站是基于 Spring 的 目前是基于 http 的 所以相当不安全 由于该网站尚未上线 我们也通过正常的 JSON 请求向服务器发送登录名 密码 并且主要关注 JSP UI 设计 S
  • 选择不使用表格的两个日期之间的所有日期(生成日期列表)

    有没有一种方法可以在不使用任何 MySQL 表的情况下获取两个日期之间的所有日期 就像是 SELECT date BETWEEN 2012 02 10 AND 2012 02 15 这会导致这样的结果 out put date list 2
  • 设计邀请批量邀请 - Ruby on Rails

    我正在尝试使用 Devise invitable 来一次添加多个用户 基本上 当有人创建帐户时 他们要做的第一件事就是使用可邀请的表单添加一堆用户 只是不确定如何复制表单中的字段并让他们为每个条目发送创建请求 提前致谢 我就是这样做的 提供
  • GROUP BY 由间隙分隔的连续日期

    假设你 在 Postgres 9 1 中 有一个像这样的表 date value 其中有一些间隙 我的意思是 并非 min date 和 max date 之间的每个可能日期都有它的行 我的问题是如何聚合这些数据 以便单独处理每个一致的组
  • 在基于 Debian 的系统上如何找到字体所对应的 Unicode 代码点?

    从基于 Debian 的系统上的脚本语言 例如 Python 或 Ruby 我想找到以下之一 特定字体具有字形的所有 Unicode 代码点 具有特定 Unicode 代码点字形的所有字体 显然 1 或 2 可以从另一个派生 所以无论哪个更
  • 从 C# 中的 List 中删除重复项

    有人有一种在 C 中对通用列表进行重复数据删除的快速方法吗 如果您使用 Net 3 则可以使用 Linq List
  • 如何在 JavaScript 中处理 ctrl+arrow ?

    I ve noticed an problem when trying to catch keyboard shortcut CTRL an arrow I ve handled keydown event Now when I hold
  • 拼接微芯片的显微镜图像

    因此 我正在尝试拼接微芯片显微镜拍摄的图像 但很难将所有特征对齐 我已经在两个相邻图像之间有 50 的重叠 但即使如此 它也并不总是很合适 我使用 SURF 和 OpenCV 来提取关键点并找到单应矩阵 但尽管如此 这还远远不是一个可以接受
  • 如何在我的 iPhone 应用程序中包含字体?

    我已经看过这个帖子了 我可以在 iPhone 应用程序中嵌入自定义字体吗 这很有帮助 但我想简单地通过以下方式加载字体 UIFont font UIFont fontWithName Harrowprint size 20 有些人报告说这是
  • 为什么在 JavaScript 中,'3 instanceof Number' == false,但 '3..method()' 会调用 Number.prototype.method?

    鉴于字面数字严格来说不是一个实例Number 为什么我可以调用原型方法Number or String or Boolean 对应文字对象上的对象 这是跨浏览器的标准行为吗 当这种情况发生时到底发生了什么 我怀疑它在调用方法之前将文字强制转