在 JavaScript 中定义“嵌套”对象构造函数?

2023-11-24

是否可以在另一个对象中定义一个对象?我在想这样的事情:

function MyObj(name) {
    this.name = name;

    function EmbeddedObj(id) {
        this.id = id;
    }
}

然后我可以创建一个 EmbeddedObj,如下所示:

var myEmbeddedObj = new MyObj.EmbeddedObj();

奖励积分模因:Objectception! :o


是的,也不是。

function MyObj(name) {
    this.name = name;
}
MyObj.EmbeddedObj = function EmbeddedObj(id) {
    this.id = id;
}
new MyObj.EmbeddedObj(42);

可以运行,但它可能不会产生“嵌入对象”的预期结果(请参阅评论)。

请注意,在以下情况下new expr表达式被求值first因此,在这种情况下,它使用评估的函数对象创建一个新对象MyObject.EmbeddedObj作为构造函数。 (表达式中有一个带有括号的愚蠢规则,但那是另一个故事了。)


现在,如果需要“父”和“子”关系,可以使用更迂回的方法来完成:

function Parent (name) {
   this.name = name;
   var parent = this; // for closure
   this.Child = function Child () {
      this.Parent = parent;
   }
}

// create new parent object
var parent = new Parent();       
// each new parent has a different Child constructor and
// any function-object can be used as a constructor
var child = new parent.Child();
// true: child is "bound" to parent
child.Parent === parent;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JavaScript 中定义“嵌套”对象构造函数? 的相关文章

  • webpack 术语中的“webpack 模块”到底是什么?

    我是 webpack 的新手 目前正在尝试理解基本概念 查看官方文档 页面上Concepts https webpack js org concepts 它使用模块术语并提供了阅读页面上有关模块的更多信息的链接Modules https w
  • 如何使用Vue3中的ref访问父组件中的子组件方法?

    我正在尝试使用 vue3 和 ref 方法访问父组件中的子方法 但它返回一个错误 未捕获的类型错误 addNewPaper value savePaper 不是函数 下面是我的代码 请指导我哪里错了 子组件
  • 为什么用 < 对 JS 数字数组进行排序有效?

    在 JavaScript 中对数字数组进行排序时 我不小心使用了 lt 代替通常 https stackoverflow com questions 1063007 how to sort an array of integers corr
  • 将 C# 3D 数组移植到 JS 3D 数组

    我开发了一个 C 库 它在 3 个项目中使用 这些项目在特定的代码段中中继 不过 我仍然需要在 javascript 中使用该代码 所以将其导出 问题是 我认为我无法复制同样的逻辑 比如这个问题我想了好几天也没有得出答案 在 C 库中 我有
  • 获得焦点时如何移动文本框视口?

    我有一个文本框 其中可能包含大于文本框大小的字符串 当我打字时 文本框 视口 总是移动以显示我输入的最后一个字符 例如 当您在 SO 问题中写下一个非常大的标题时 A 问题是 如果文本框失去焦点 当它再次聚焦时 视口总是设置在文本的开头 而
  • JQuery:获取单选按钮值

    我有以下 HTML HTML
  • 打开一个新的浏览器窗口/iframe 并在 TEXTAREA 中从 HTML 创建新文档?

    我正在尝试使用 HTML5 的新离线功能编写一个 Web 应用程序 在此应用程序中 我希望能够编辑一些 HTML 完整文档 而不是片段
  • 使用 jquery UI 调整大小的分屏 div

    我心中有一个设计 涉及 html 中的拆分面板视图 类似于 winforms 拆分面板 我一直在尝试jQuery UI 可调整大小 http jqueryui com demos resizable我喜欢这个功能 我只是似乎无法协调两者的大
  • 多个链接 dc.js 图表的 d3-tooltips

    我正在寻找修改 dc js 的开箱即用工具提示 似乎有一个解决方案使用d3 js 工具提示 https github com Caged d3 tip as in 这个问题 https stackoverflow com questions
  • Node.js 中的 SetTimeout 问题

    我有以下代码 它在 Chrome V8 下运行良好 但在节点内失败 var id id setTimeout TimeoutHandler 10 console log SET function TimeoutHandler clearTi
  • 缩放对象上的弹跳动画

    拥有对象比例 然后在返回到原始比例因子之前以该比例因子执行弹跳动画的最佳方法是什么 我意识到我可以做一些事情 比如将其缩放到 2 2 然后 1 8 然后 2 0 但我正在寻找一种方法 您只需在比例因子上执行弹跳动画 因为我的比例因子会改变
  • 将 Blob 设置为 iframe 的“src”

    以下代码在 Chrome 中完美运行 但它不适用于 IE 有人可以告诉我这里出了什么问题吗 iframe src 也设置为 blob 如下所示
  • 如何在phonegap中同时使用相机API选择多个图像?

    如何同时选择或拾取多个图像phonegap camera API使用时Camera DestinationType FILE URI 我一次只能选择一张图像 我可以使用以下命令在 SD 卡中选择多个文件 包括 txt pdf this ht
  • Internet Explorer 10,最大 div 大小为 1.533.917 像素

    我需要制作一个非常大的 div 以百万像素为单位 搜索我发现这个线程证明 IE 可以管理最多 10 000 000 px 确定最大可能的 DIV 高度 https stackoverflow com questions 7719273 de
  • 重写node.js中其他模块中的函数

    我正在尝试在 Node js 应用程序中使用 nodeunit 存根函数 这是我正在尝试做的事情的简化版本 In lib file js var request require request var myFunc function inp
  • 使用 Firefox 插件发出跨域 ajax 请求

    我对如何在 Firefox 插件中发出跨域 ajax 请求感到有点困惑 LastPass 和 Xmarks 等插件建议你可以做到这一点 但是当我尝试用 google 搜索你是如何做到这一点时 每个人似乎都说你不能 除非用户在 Firefox
  • 使用 Javascript 编辑和保存用户 HTML - 安全性如何?

    例如我有一个Javascript 支持的表单创建工具 您可以使用链接添加元素的 html 块 如输入字段 并使用 TinyMCE 来编辑文本 这些是通过自动保存功能保存的 该功能在特定事件的后台执行 AJAX 调用 被调用的保存函数负责数据
  • 有没有办法避开 Google 路线中的特定道路或坐标?

    API 有一个航路点参数 以便 API 计算经过指定航路点的路线 有什么方法可以给出要避开的航路点而不是要经过的航路点 它 目前 尚未实施 有一个开放的功能请求 问题 214 影响方向的能力 例如 避免 路障 https code goog
  • 在不调用“then”的情况下解决 Promise

    我有这段代码 它是我为一个名为 Poolio 的 NPM 模块编写的小型 API 的一部分 对于那些支持错误优先回调和承诺的人来说 我遇到的问题似乎是一个常见问题 我们如何在支持两者的同时保持一致的 API 和 API 的一致返回值 例如
  • 获取类的公共属性而不创建它的实例?

    假设我们有一个 JavaScript 类 var Person function function Person name surname this name name this surname surname Person prototy

随机推荐

  • maven支持kapt吗?

    是否可以在基于 Maven 的项目中运行 kapt kotlin 注释处理 如果是 我如何将 kapt 集成到 Maven 构建系统中 自 Kotlin 1 1 2 起 现在支持 Gradle 和 Maven 来运行 KAPT 插件 这记录
  • 无法通过引用传递参数 2 - uuid PDO

    我正在尝试插入UUID 和我的INSERT query handle gt beginTransaction Define query query INSERT INTO users users uuid type id VALUES uu
  • if-else-if 阶梯的两个部分的条件语句均为 true

    如果你有这样的代码 if A gt X B gt Y Action1 else if A gt X B gt Y Action2 With A gt X and B gt Y 将两个部分if else if梯子被执行 我正在处理存在此问题的
  • 多彩多姿的占位符文本

    我需要创建一个具有彩色占位符文本的 HTML 文本输入元素 所有文本都应为灰色 但结束星号应为红色 如下所示 在我看来 这是一项看似简单的任务 但实际上要复杂得多 因为浏览器限制了我们设置本机输入元素样式的能力 我听说有人使用 CSS 来覆
  • 什么是应用程序之间的本机消息传递以及它如何工作?

    Chrome 开发者文档提到了一个叫做Native Messaging直接从 Chrome 扩展程序或应用程序与其他桌面应用程序进行通信 我如何判断桌面应用程序何时具有此类可用的本机消息传递以及它可以接受哪种类型的通信 有没有办法让应用程序
  • documentdb 模拟器 gatewayservice 在启动时崩溃

    我想了解 documentdb 并安装模拟器 看起来没有错误 但是 启动后我的服务崩溃了 网关服务启动 从标题来看 我猜测这是模拟器的一项重要服务 有趣的是 模拟器似乎继 续加载并尝试打开 https localhost 8081 expl
  • 如何将答案转换为小数点后两位

    这是我的代码 我想要的输出是txtA Text and txtB Text保留两位小数 Public Class Form1 Private Sub btncalc Click ByVal sender As System Object B
  • 为什么 EF 5.x 对表使用复数名称?

    我对 ORM 框架 例如 Hibernate 甚至 Entity Framework 3 0 有一些经验 默认情况下 这些框架使用表的单数名称 例如 类 User 将映射到表 User 但是 当我使用 Visual Studio 2012
  • 使具有不可选取字段的对象可选取的正确方法是什么?

    对我来说 我所做的就是检测不可选取的内容并将其放入字符串中 我想我也可以将其删除 但随后它会错误地告诉我该字段不存在 但我宁愿让它存在但成为字符串 但我想知道是否有一种不那么老套 更正式的方式来做到这一点 我当前使用的代码 def make
  • Windows 上的 /usr/lib/ 相当于什么?

    我正在创建一个依赖于 libxml2 的跨平台程序 我不想在应用程序的 Windows 端口上使用 POSIX 环境 例如 Cygwin 或 MSYS 我计划使用 Javascript Host for Windows 和 nmake 创建
  • Java 中的函数式数据结构

    Java标准库是否有功能更新的功能数据结构 例如不可变集 列表等 函数式java has 集合 列表以及更多有趣的抽象
  • 如何使用 Java 中的 ResultSet 获取行数?

    我正在尝试创建一个简单的方法 该方法接收 ResultSet 作为参数并返回一个包含 ResultSet 行数的 int 这是一种有效的方法吗 int size 0 try while rs next size catch Exceptio
  • 在 matplotlib 中向辅助 y 轴添加 y 轴标签

    我可以使用以下命令向左侧 y 轴添加标签plt ylabel 但如何将其添加到辅助 y 轴 table sql read frame query connection table 0 plot color colors 0 ylim 0 1
  • Android Studio 错误:无法翻译 setText 中的字符串文字

    这是我的第一个应用程序 我遇到了一些麻烦 当我运行该应用程序时 它崩溃了 我不知道如何修复此错误 public class MainActivity extends AppCompatActivity TextView outputBott
  • 创建“灵活”的 XML 模式

    我需要为 XML 文件创建一个非常灵活的架构 它必须满足以下要求 验证我们需要存在的一些元素 并了解其确切结构 验证一些可选元素 我们知道其确切结构 允许任何其他元素 以任意顺序允许它们 快速示例 XML
  • 蒙戈服务崩溃了。需要查找崩溃原因

    今天早上我在我的服务器上发现 mongo 出现以下错误 System restart required You have mail ubuntu ip xxx xx xx xx mongo MongoDB shell version 2 4
  • Manifest.json 意外令牌

    你好 我将一个反应 表达项目推到了heroku https polar oasis 57801 herokuapp com 并在控制台中收到以下错误 Chrome 控制台错误消息 我尝试查找此错误 似乎我需要更改 manifest json
  • 将数组或列表传递给 @Pathvariable - Spring/Java

    我正在 JBoss Spring 中做一个简单的 获取 我希望客户端在 url 中向我传递一个整数数组 我如何在服务器上进行设置 并显示客户端应该发送消息吗 这就是我现在所拥有的 RequestMapping value test firs
  • multiprocessing.Manager 嵌套共享对象不适用于队列[重复]

    这个问题在这里已经有答案了 Python 文档multiprocessing模块状态 3 6版本更改 共享对象可以嵌套 例如 共享容器对象 例如共享列表 可以包含其他共享对象 这些对象都将由共享容器对象管理和同步 SyncManager 这
  • 在 JavaScript 中定义“嵌套”对象构造函数?

    是否可以在另一个对象中定义一个对象 我在想这样的事情 function MyObj name this name name function EmbeddedObj id this id id 然后我可以创建一个 EmbeddedObj 如