TypeError: 调用 Function.prototype.method() 时 this.prototype 未定义

2024-04-25

我正在读《Javascript:优秀部分》一书。
现在我正在阅读有关增强类型的章节:

Function.prototype.method = function (name, func) {
   this.prototype[name] = func;
   return this;
};

UPDATE:
为什么下面的代码不起作用?

js> Function.prototype.method("test", function(){print("TEST")});
typein:2: TypeError: this.prototype is undefined

但下面的代码运行没有问题:

js> Function.method("test", function(){print("TEST")});
function Function() {[native code]}

为什么这段代码有效?

js> var obj = {"status" : "ST"};
js> typeof obj;
"object"
js> obj.method = function(){print(this.status)};
(function () {print(this.status);})
js> obj.method();
ST

“obj”是对象。
但我可以在其上调用方法“方法”。
Function.prototype.method 和 obj.method 有什么区别?


this指的是Function.prototype因为你打电话给.method关于这一点。所以,你正在使用Function.prototype.prototype这是不存在的。

要么使用Function.method(...) or this[name] = ...消除其中之一.prototypes.

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

TypeError: 调用 Function.prototype.method() 时 this.prototype 未定义 的相关文章

随机推荐

  • .NET 应用程序无法启动和接收 XamlParseException

    我编写了一个可以在我的开发 PC Windows 7 上安装和运行的应用程序 开发环境 Window 7 VS2010 WPF C 两者都有 NET 4 and NET 3 5已安装 在其他客户端计算机 XP SP3 2和1 上 安装没有错
  • 我在 Joda-Time 中得到两个日期之间的时间错误

    无论我做什么 我都会得到不正确的结果 谁能给我一些建议吗 这是我的程序的代码 负责获取两个日期之间的时间 我得到了结果 但问题是它不正确 并且我无法找到问题 我的项目中有 Joda 库 if timerightnow isSelected
  • iOS - 管理 IBOutlet 内存的最佳方法是什么?

    我一直在查看 Apple 文档和示例代码 试图确定管理 IBOutlet 内存的最佳方法 至少可以说 我有点困惑 CurrentAddress 示例代码将 IBOutlets 声明为属性 interface MapViewControlle
  • 如何为 iOS 构建 PoDoFo 库

    这可能是这个问题的副本如何在 iOS 上使用 PoDoFo 库对 PDF 进行注释 https stackoverflow com questions 7643771 how can i use the podofo library for
  • 调试时的监视窗口:CS0103:当前上下文中不存在名称“

    我正在使用 Visual Studio Community 2022 64 bit Version 17 4 2 with NET Framework Version 4 8 09032 昨天 2022 年 2 月 12 日有更新 我是通过
  • pictureBox 图片处理异常

    我最近想尝试一下锻造网 http www aforgenet com framework 因为我发现它非常简单 所以我决定使用 Video FFMPEG 命名空间进行一些简单的视频播放 这样我就可以将每个帧直接放在 pictureBox 上
  • Android中线程加载的Web图像

    我在 ListActivity 中有一个扩展的 BaseAdapter private static class RequestAdapter extends BaseAdapter 以及其中定义的一些处理程序和可运行对象 Need han
  • Javascript var 提升问题

    我有一个非常简单的 Javascript 函数 它可以访问 MS SQL 服务器并返回一些记录 有一个单元格 我只想在它唯一时才显示在顶部表格行中 我相信我的问题是 var 提升 因为我在 while 循环中分配的变量不起作用 因为该值不是
  • OS X 应用程序图标和菜单栏图标的图标大小

    OS X 的应用程序图标和菜单栏图标应该有多大 我可以处理小分辨率显示屏 但 Retina 显示屏怎么样 在配备 Retina 显示屏的新 MacBook Pro 上 菜单栏上显示的图标 例如 20 x 20 是否会更小或模糊 我认为应用程
  • UITextView不会设置文本

    我在 UITextView 中设置文本时遇到问题 我的 textView 连接到我的 StoryBoard 我控制拖动来创建我的出口 import UIKit class ViewController UIViewController UI
  • 如何从 JavaScript 使用 Opus 编解码器

    我想看看是否可以使用直接访问 OpusgetUserMedia或最新浏览器中的任何类似内容 我对此进行了很多研究 但没有取得好的结果 我知道 Opus 或 Speex 实际上用于webkitSpeechRecognitionAPI 我想做语
  • HTML5 日期选择器不显示在 Safari 上

    之前使用过 jQuery 日期选择器 现在我已将网站表单中的一些日期字段转换为 HTML5 日期选择器 在文档中 它说支持 Safari 但是 它目前仅显示一个文本字段 而 Chrome 和其他浏览器可以正确显示日期选择器 echo
  • swift 4.0:覆盖“prepare”必须与其覆盖的声明一样可用

    我试图将 Apple 的 ARKit 示例应用程序集成到我的应用程序中 由于ARKit只是一个附加功能 所以我需要支持较低版本的iOS 我向所有 ARKit 示例应用程序类添加了 available iOS 11 0 标签 它几乎可以工作
  • 如何使用 scrapy 合约?

    Scrapy 合约问题 我开始研究 scrapy 框架 也实现了一些蜘蛛 提取 但我无法为蜘蛛编写单元测试用例 因为合同 scrapy提供的包文档没有正确的程序来编写 测试用例 请帮我解决这件事 Yes 蜘蛛合约 http doc scra
  • 如何修改此 PowerShell 脚本以将目录名称更改为更低?

    我试图将所有文件和目录重命名为 lower 我在这里找到了一个 powershell 脚本 在 Powershell 中将文件重命名为小写 https stackoverflow com questions 3822745 rename f
  • HTML5 - 防止全屏模式

    我正在使用全屏API https developer mozilla org en US docs Web API Fullscreen API使用嵌入的 YouTube 视频来检测浏览器窗口是否已进入全屏模式 我的效果很好 我想做的是防止
  • 为什么这段带有“1234”的代码可以在 C++ 中编译?

    为什么会这样编译 char ch 1234 no error 但不能超过 4 个chars char ch 12345 error Too many chars in constant 是的 我知道 用于一个char and 用于字符串 我
  • 打开 CV 通用 Mat 函数头

    在 OpenCV 中 访问一个像素是很常见的 Mat像这样的对象 float b A at
  • 将 django 与邮递员一起使用{“详细信息”:“CSRF 失败:CSRF 令牌丢失或不正确。”}

    我正在使用邮递员检查来自 django rest framework 的 json 响应 当我第一次尝试通过 POST 方法将 id 电子邮件 密码发布到 AWS 亚马逊网络服务 上的 django 时 效果很好 它返回如下 key 99d
  • TypeError: 调用 Function.prototype.method() 时 this.prototype 未定义

    我正在读 Javascript 优秀部分 一书 现在我正在阅读有关增强类型的章节 Function prototype method function name func this prototype name func return th