javascript - 作为自身父对象的 javascript 对象?

标签 javascript object inheritance prototype

我正在编写一个抓取和数据输入程序,以节省我妈妈和她的同事数小时的重复表单提交时间。一切都很顺利,直到我在提交按钮上调用了这个 onclick 函数。该函数(出于安全目的,我们将其称为 dataLogger() )将单个输入字段条目作为参数,然后……我不知道……因为它指的是一个本质上调用其父构造函数的函数。 . 像这样(函数名称被换出):

dataLogger(data) {
   if (parent)
        if (typeof(parent.dataLoggerP) == 'function')
            parent.dataLoggerP(data);

所以我在这个函数上设置了一个断点,并检查了 firebug 中的“dataLogger”对象。我想我只需要查看原型(prototype)节点的子节点,查看父节点的“dataLoggerP”函数,搜索该函数定义,然后解决我的问题。但是有趣的事情发生了。我会在 Watch Expressions 中单击 firebug 中的 prototype: 节点,然后看到其中的两个节点:constructor: dataLogger(data)__proto__:。我打开 constructor: dataLogger(data) 节点才发现它是原始 dataLogger 对象的副本!在那个里面,还有另一个……另一个……直到无穷大。就像mc escher的画...

我不知道发生了什么,也不知道它是如何工作的……非常感谢任何对此的见解。

最佳答案

constructor 是创建对象的函数。它不是继承意义上的父级。更好的是,parent 不是对象的父对象,它是(除非另有定义)window(如果您有框架或 iframe)的父对象。如果没有其他定义,这段代码应该查看父窗口(如果存在)是否具有 dataLoggerP 函数(不是对象),如果有,则执行它。如果没有父窗口,或者如果它没有定义 dataLoggerP 函数,则什么也不会发生,也没有错误,因为它都包含在检查中。

关于javascript - 作为自身父对象的 javascript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25597443/

相关文章:

c++ - 遍历文本文件并为每一行分配变量

python - 从文本文件中检索 JSON 对象(使用 Python)

wpf - 从应用程序样式 (WPF) 继承

javascript - 更改 AJAX 数据表的当前页面

javascript - 如何同时通过多个请求将数据从 php 传递到 javascript

javascript - 如何使用 OAuth2 从 linkedin 获取最近的公司更新

JavaScript - 将一种方法应用于多个对象

c# - 在 C# 中是否有可继承静态泛型类的替代方案?

inheritance - 从扩展类调用时,groovy 中的闭包不能使用私有(private)字段

javascript - 将多行文本拆分为特定宽度的行