检查对象是否有用户定义的原型?

2024-01-11

简而言之,我可以检查一个对象是否具有用户定义的原型吗?

Example;

var A = function() {};

var B = function() {};

B.prototype = {

};

// Pseudocode
A.hasUserPrototype(); // False
B.hasUserPrototype(); // True

这可能吗?


假设您想找出一个对象是否是自定义构造函数的实例,您可以将其原型与Object.prototype:

function hasUserPrototype(obj) {
    return Object.getPrototypeOf(obj) !== Object.prototype;
}

或者如果您保持constructor属性正确:

function hasUserPrototype(obj) {
    return obj.constructor !== Object;
}

这也适用于不支持的浏览器Object.getPrototypeOf.

但这两种解决方案都会返回true也适用于其他本机对象,例如函数、正则表达式或日期。为了获得“更好”的解决方案,您可以将原型或构造函数与所有本机原型/构造函数进行比较。


Update:

如果你想测试是否function有用户定义的prototypevalue,那么恐怕没有办法检测到这一点。初始值只是一个具有特殊属性的简单对象(constructor). You could测试该属性是否存在(A.prototype.hasOwnProperty('constructor')),但是如果设置原型的人做对了,他们就会正确地添加constructor更改原型后的属性。

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

检查对象是否有用户定义的原型? 的相关文章

  • 按下了哪个提交按钮?

    在这个jsfiddle中 http jsfiddle net littlesandra88 eGRRb http jsfiddle net littlesandra88 eGRRb 我是否提交了自动生成的按钮 每个表行都有一个唯一的 ID
  • 删除 NSMutablearray 中的最后一个对象[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 为什么要删
  • 如何在 Chrome 中实现抓取光标图标?

    我知道可以在 Chrome 中使用抓取光标图标 当然是在 Gmail 中 但我不知道如何在我的代码中实现它 我已经尝试过 在CSS中 body cursor grab body cursor webkit grab body cursor
  • 捕获外部脚本文件中的 javascript 错误

    我有一点 JavaScript Jquery 工具的叠加层 http flowplayer org tools overlay index html 当放到错误使用它的页面上时可能会引发异常 我正在尝试优雅地处理它 我有一个通用的 wind
  • 原型组件的 Spring 事件处理

    假设我有两个组件 X 和 Y 其中 X 是单例 而 Y 不是 当我发布XUpdateEvent时 没有问题 我可以捕获该事件 但是 对于 YUpdateEvent 我无法捕获事件 Spring 为每个触发的事件创建新实例 而不是使用已经创建
  • 区分单击与 mousedown/mouseup

    我已经阅读了有关这种情况的 stackoverflow 上的几个答案 但没有一个解决方案有效 我尝试根据用户是否单击某个元素或使用 jQuery 将鼠标按住该元素来执行不同的操作 有可能做到这一点吗 onMouseDown 将在按下左侧或右
  • 如何在 JavaScript 中构建一个计算数组中出现次数的对象?

    我想计算数组中某个数字出现的频率 例如 在Python中我可以使用Collections Counter创建一个字典 记录某个项目在列表中出现的频率 据我所知 JavaScript 是这样的 var array 1 4 4 5 5 7 va
  • 如何向尚未添加到页面的元素注册 Javascript 事件处理程序

    我正在尝试构建一个greasemonkey 脚本 它将根据用户与其他动态创建的数据表的交互动态创建数据表 我的问题是 每次创建表时 我都必须进行两次传递 一次用于创建表 另一次用于获取表中我想要添加事件处理程序的所有对象 通过 id 并添加
  • 如何在参数上使用 .reduce() 而不是特定的数组或对象?

    我想定义一个函数 flatten 将多个元素展平为一个数组 我知道以下是不可能的 但本质上我想这样做 var flatten function var flattened arguments reduce function acc elem
  • django ajax post 403被禁止

    使用 django 1 4 当我尝试从我的 javascript 做我的 django 服务器上的帖子时 我收到 403 错误 我的 get 工作正常 尽管问题仅出在帖子上 也尝试过 csrf exempt但没有运气 更新 我现在可以发布我
  • 禁用任何类型的浏览器窗口滚动?

    有没有办法禁用滚动 不仅仅是滚动条 还有浏览器窗口的全部功能 根据您对 Keit 的回答 您不想在打开灯箱时滚动处于活动状态 如果是这种情况 您可以使用以下 css 在打开灯箱的同时向正文添加一个类 这个解决方案的好处是它保留了滚动 空间
  • 全局定义的 AngularJS 控制器和封装

    根据 AngularJS 的教程 控制器函数仅位于全局范围内 http docs angularjs org tutorial step 04 http docs angularjs org tutorial step 04 控制器函数本身
  • Google 地图 v3 中标准缩放控件的样式

    有没有一种简单的方法可以在 Google Maps JavaScript API v3 中设置缩放控件的样式 我想要的只是改变标准图像 http maps gstatic com intl en ALL mapfiles mapcontro
  • while 循环元素状态 cypress

    我有一个问题 我想单击一个按钮直到它消失 但次数可能会有所不同 所以我想检查可见性状态 当可见 true时单击按钮 当可见 false时结束测试 但问题是我不知道如何循环从获取元素到末尾的所有链 单击按钮一次 由于中断而停止 如果我删除中断
  • 单击react.js 切换列表的背景颜色

    我正在尝试创建一个具有以下功能的列表 悬停时更改列表项的背景颜色 单击时更改列表项的背景颜色 在单击的元素之间切换背景颜色 即列表中只有一个元素可以具有 clicked 属性 我已经执行了 onhover 1 和 2 功能 但无法实现第三个
  • 获取 2 个日期之间的月份名称

    我有两个约会from and to 我想获取这两个日期之间的所有月份名称 以下是我的代码 var monthNames January February March April May June July August September
  • 盒式捆绑包与 MVC4 捆绑包

    我目前正在开发一个原型 ASP NET MVC 3 解决方案 该解决方案将用作多个项目重写的基础 来自 Web 表单 我的目标之一是跨应用程序实现一些脚本管理 而不是我们目前没有的目标 MVC 3有一个缺陷恕我直言 如果您需要在部分视图或模
  • 如何仅在第一次访问时弹出模态窗口

    我有一个模式窗口 当您访问某个页面时会弹出 访客必须选择我同意或我不同意 我需要一个漂亮的小 jquery 脚本 它会记住谁之前访问过该页面并同意 这样他们每次访问该页面时就不会弹出模式 有人可以推荐一个好的脚本来使用吗 这是代码 div
  • 从 Node.js 调用 execl、execle、execlp、execv、execvP 或 execvp 的方法

    POSIX 系统公开了一系列exec函数 允许人们将可能不同的东西加载到当前进程中 保留打开的文件描述符 进程标识符等 可以出于多种原因执行此操作 在我的情况下 这是引导 我想更改我自己的进程的命令行选项 然后在现有进程上重新加载它 这样就
  • html5 canvas 使用图像作为蒙版

    是否可以使用具有形状的图像作为整个画布或画布内图像的蒙版 我想将图像放置在画布中 并在图像上添加蒙版 然后将其另存为新图像 您可以使用 source in globalCompositeOperation 将黑白图像用作蒙版 首先 将蒙版图

随机推荐

  • 当我尝试使用或返回枚举值时,可以避免强制转换它吗?

    如果我有以下枚举 public enum ReturnValue Success 0 FailReason1 1 FailReason2 2 Etc 我可以在返回时避免强制转换吗 如下所示 public static int main st
  • Keycloak 中的资源、范围、权限和策略

    我想使用 Keycloak 的授权系统创建一个相当简单的基于角色的访问控制系统 Keycloak 正在取代的系统允许我们创建一个 用户 他是一个或多个 组 的成员 在这个遗留系统中 通过组成员身份 其中为组分配了权限 或直接向用户授予权限
  • HTMLagilityPack 与 Powershell、Windows 身份验证相结合

    所以我有一个叫做lansweeper的工具 它在本地服务器上运行 现在我想从中抓取一个页面 但它使用 Windows 身份验证 我使用 Powershell 作为脚本语言 我主要使用HTMLAgilityPack来抓取 但我从来没有抓取过使
  • if 中的单个等于。 JavaScript。有什么好的理由吗?

    jQuery each player function key val if el pr attr plain key el text val 0 val 我继承了一个项目 但我遇到了一些奇怪的事情 启动这个项目的人是一位经验丰富的程序员
  • 打开 facebook 页面进入 facebook 应用程序 Ios + ionic

    目标 在 facebook 应用程序中打开 facebook 页面 url 我正在使用离子version 1 6我努力了 a img src img fb png alt width auto height auto a 在控制器文件中 我
  • 使用 python 抓取 javascript:void(0) 内容

    我正在制作一个程序 其中我正在废弃一个网页 并且内容从原始页面隐藏并用于显示自身herf javascript void 0 链接和文本位于 p 进而 span tags 这是我的代码 import requests re from bs4
  • 类中的 JavaScript“onclick”上下文

    今天我想知道在一个项目中保留上下文的最佳方法onClick在类中使用时的侦听器 如果this在某个地方得到了回答 请将我链接到它 我显然太愚蠢了 找不到它 无论如何 我的问题是 是否有最佳实践 或者我的一些想法是否愚蠢甚至错误 我尝试了一些
  • 如何进行 Django REST 框架 /me/ 调用?

    假设我有一个ViewSet class ProfileViewSet viewsets ModelViewSet API endpoint that allows a user s profile to be viewed or edite
  • imap 自定义关键字

    我从哪开始呢 我似乎找不到任何明确的文档 我可能找错地方了 我希望能够编辑电子邮件的 IMAP 关键字 用于标记目的 我有一些非常菜鸟的问题 它们是如何添加的 关键字是否直接应用于消息标头 如果是 语法是什么 或者是否有其他类型的 imap
  • 错误:java.lang.SecurityException:签名者信息与同一包中其他类的签名者信息不匹配

    我正在使用下面的 jar 文件 bcmail jdk16 1 46 bcprov jdk16 1 46 commons codec 1 9 commons io 2 5 我在这一行遇到错误 CMSSignedData cms new CMS
  • python中通过爬取子URL来下载文件

    我正在尝试从大量网络链接下载文档 主要是pdf格式 如下所示 https projects worldbank org en projects operations document detail P167897 type projects
  • 当未设置属性时,构建失败的简单方法是什么?

    正如标题中所述 我如何以最简单的方式修改apom xml为了使其在命令行中未设置属性时失败 例如 mvn clean package将会失败 当mvn clean package Dfoo bar将会成功 我正在寻找类似的东西
  • 每秒基板事务性能

    大家好 我有一个与性能相关的问题 我正在运行 2 个具有 30GB 存储空间的 aws 实例 t2 2xlarge 我正在使用默认设置在每个节点上运行 v2 0 节点 几天前从 master 分支 并且我正在测试每秒可以处理多少事务 平均每
  • 为什么我需要在 JPA 中双向设置实体

    我有以下两个实体 Entity public class Pilot implements Serializable ManyToOne JoinColumn name FLIGHT ID private Flight flight and
  • Kotlin async/await 语法不会阻塞调用者

    我想知道 Kotlin 是否可以取代我们当前处理异步代码的方式 现在 我们使用CompletableFutures处理异步代码 下面是这种方法的一个例子 public void onBalanceRequest Client client
  • 由于缺少 android SDK,Jenkins 构建失败

    正如标题所示 我的 jenkins 构建由于找不到 android sdk 而失败 尽管它位于环境路径中 这是控制台日志 Started by user anonymous Building in workspace Users lmnap
  • OpenCV 根据像素值调整图像大小和裁剪图像

    include iostream include cv h include highgui h include cvaux h include cxmisc h include math h using namespace cv using
  • 访问Mac的传感器数据

    有没有办法使用 Python 和 或 C 在 Mac 上获取环境光传感器数据 谷歌了一下 没有找到太多信息 大部分信息都与 Objective C 有关 这看起来并不简单 您可能需要使用 C C 来制作 swig 组件 这是一个读取突然运动
  • 在 mac 上将 VS code 与 TFS 连接

    如何连接视觉工作室代码 on mac with 团队基础服务器 TFS 或者有其他方式连接tfs吗 以下是将 TFS TFVC 存储库有效连接到 Mac 上的 VS Code 的步骤 安装软件 安装 Visual Studio Code f
  • 检查对象是否有用户定义的原型?

    简而言之 我可以检查一个对象是否具有用户定义的原型吗 Example var A function var B function B prototype Pseudocode A hasUserPrototype False B hasUs