当对象的属性被设置时调用函数

2023-11-26

我真的不知道如何解释这一点,但我会向您展示代码并告诉您我想要实现的目标。

假设我制作了一个快速对象:

var test = {};

然后我为其设置一个属性:(我insist在语法上,它不能使用任何函数作为设置器)

test.hello = 'world';

很简单,嗯?现在我想向该对象添加一个函数,每次设置新属性时都会调用该函数。像这样:

var test = { 
                newPropertyHasBeenSet: function(name){ 
                    console.log(name + 'has been set.'); 
                } 
            };

test.hello = 'world';

// Now newPropertyHasBeenSet gets called with 'hello' as an argument.
// hello has been set.

我不知道这是否可能,但这将是相当惊人的。任何人都知道如何实现这一目标?

编辑:我也希望能够对财产获取做同样的事情(所以test.hello会打电话get('hello')例如)。

EDIT2: 这是使用 node.js 的服务器端 javascript.

非常感谢,祝你有愉快的一天!


在 chrome 中尝试这个例子(正如之前的评论中提到的,它使用ES6 代理):

var p = new Proxy(
    {},
    {
        get: function(obj, name) {
            console.log('read request to ' + name + ' property');
            if (name == 'test_test') return 1234;
            else return 'Meh';
        },
        set: function(obj, name, value) {
            console.log('write request to ' + name + ' property with ' + value + ' value');
        },
    }
);

console.log(p.test_test);
console.log(p.test);
p.qqq = 'test';

result:

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

当对象的属性被设置时调用函数 的相关文章

  • 将实时流音频从 NodeJS 服务器获取到客户端

    我需要从 1 个客户端到服务器到多个侦听器客户端的实时实时音频流 目前 我正在从客户端进行录音 并通过 socket io 将音频流式传输到服务器 服务器接收此数据 并且必须将音频流式传输 也通过 socket io 到想要收听此流的客户端
  • 图表.js.如何更改“标签”数组的字体样式?

    我从 Chart JS 库中获取了一个图表 截屏 https i stack imgur com DnuRq png var ctx document getElementById myChart var data labels HTML
  • 如何正确地将节点从引用传递到上下文?

    我正在尝试将节点从引用传递到上下文 但是因为我在第一次渲染后没有重新渲染 所以传递的节 点是null 我考虑了两种变体 但我认为它们不是最好的 To pass ref代替ref current 但在用例中 我将被迫使用类似的东西contex
  • React Native 无法访问 Cloud Firestore 后端

    我之前使用的是 firebase 实时数据库 但现在想切换到 Cloud Firestore 但即使经过身份验证 也会收到以下错误 我目前正在使用 Android Simulator 尝试禁用我的实时数据库 但找不到解决方案 Firebas
  • 鼠标移动时画布拖动

    我正在尝试构建一个可以使用鼠标移动拖动的画布 我做了一些我无法理解的错误 因为一开始似乎有效 然后出现了一个增量错误 使画布移动得太快 考虑以下代码 window onload function var canvas document ge
  • 早于 0.4.12 的 Node.js 无法在 AWS EC2 上正常工作。为什么?

    我无法在 AWS EC2 Ubuntu 或 CentOs 没关系 上安装 node js v0 6 1 安装后我输入node 处理器负载达到100 但 v0 4 12 工作正常 可能只有我有这个问题 那不好意思了 请告诉我我做错了什么 提前
  • 公开闭包内的方法

    当我们在闭包内创建一个方法时 该方法将成为该闭包的私有方法 并且在我们以某种方式公开它之前无法访问它 怎么可能暴露呢 您可以返回对它的引用 var a function var b function I m private alert go
  • 在给定索引上将字符串分成两部分并返回两部分

    我有一个字符串 需要在给定索引上拆分 然后返回两个部分 并用逗号分隔 例如 string 8211 8 211 98700 98 700 因此 我需要能够在任何给定索引上拆分字符串 然后返回字符串的两半 内置方法似乎执行分割 但只返回分割的
  • 如何将React JS状态保存到本地存储中

    我不知道如何将 React js 状态存储到本地存储中 import React Component from react import App css import auth createUserProfileDocument from
  • 在 Windows 上使用 IPython 笔记本时出现 500 服务器错误

    我刚刚在 Windows 7 Professional 64 位上全新安装了 IPython 笔记本 我采取的步骤是 从以下位置安装 Python 3 4 1http python org http python org gt pip in
  • 使用 eval 时不会受到 XSS 威胁

    我正在制作 不是现在 但我仍然对这个感到好奇 一款使用 HTML5 和 JS 的游戏 我想要的是人们可以插入自定义脚本 但要安全 function executeCustomJS code eval code bad 当然这段代码非常糟糕
  • 文件缓存:查询字符串与上次修改时间?

    我正在研究缓存网站资源的方法 并注意到大多数与我类似的网站都使用查询字符串来覆盖缓存 例如 css style css v 124942823 后来 我注意到每当我保存 style css 文件时 最后修改的标头都会 更新 使得查询字符串变
  • iPhone 上的锁定方向 UIWebView

    有没有办法锁定 UIWebView 的方向 使用 Obj C JS 还是 Html 我不想有按钮或任何东西 我只想在应用程序打开时将其锁定为纵向 好像这个堆栈溢出帖子 https stackoverflow com questions 43
  • JS:修改 JS 对象中的值/对

    我正在尝试找出修改对象的最佳方法 而无需三次写出类似的对象 所以我有这三个对象 var object1 start start end end type 1 var object2 start start end end type 2 va
  • 当rest api应用程序服务器(express)和Angulars js应用程序在不同端口上运行时出现Cors问题

    我有用node js编写的rest api应用程序 express在端口3000上运行 而angularjs应用程序在同一服务器上的端口9001上运行 从 angularjs 应用程序调用 rst api 时 出现了 cors 问题 在re
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • chrome 选项卡/窗口中的 window.open 行为

    我有一小段 javascript 旨在打开两个或更多选项卡 这在 FF 和 IE 中工作正常 但 chrome 会在新窗口而不是选项卡中打开第二个窗口 它不依赖于 url 因为我已经尝试过使用两个相同的 url 第一个在选项卡中打开 第二个
  • D3 强制布局,较大的节点聚集在中心

    我一直在修改将用于标签云的强制布局 每个标签都由一个
  • jQuery:向左滑动和向右滑动

    我见过slideUp and slideDown在 jQuery 中 左右滑动的功能 方式怎么样 您可以使用 jQuery UI 中的附加效果来做到这一点 详情请参阅此处 http docs jquery com UI Effects Sl
  • Socket.io、集群、快速和同步事件

    1周以来我遇到了一个大问题 我尝试将实际在单核上运行的 node JS 项目转换为具有集群的多核 对于 websockets 目前 我对事件没有任何问题 但是 对于 xhr polling 或 jsonp polling 我在集群模式下使用

随机推荐

  • 如何使用 Popen 在一个进程中运行多个命令?

    我想打开一个进程并在同一进程中运行两个命令 我有 cmd1 source usr local cmd2 ls l final Popen cmd2 shell True stdin PIPE stdout PIPE stderr STDOU
  • 如何全局设置 Jackson 以忽略 Spring 中的未知属性?

    Jackson 使用以下注释来忽略类中的未知属性 JsonIgnoreProperties ignoreUnknown true 它允许您使用此注释忽略特定属性 JsonIgnore 如果您想全局设置它 您可以修改对象映射器 jackson
  • 使用 Commons CSV 解析 CSV - 引号内的引号导致 IOException

    我在用共享 CSV解析与电视节目相关的 CSV 内容 其中一个节目的节目名称包含双引号 116 6 2 29 九月 10 JJ 60 分钟 http www tvmaze com episodes 4855 criminal minds 6
  • jQuery 根据类重新排序列表项

    有没有一种简单的方法可以使用类重新排序我的列表项 我想指定一个类来首先显示列表顶部的这些项目 然后列出下面的其他列表项目 ul class order me li class normal content li li class norma
  • 批处理命令捕获所有可能的 ping 问题

    我有一个关于验证 ping 是否在批处理命令中正确返回的问题 目前 我必须通过 3 种不同的方式检查 ping 才能知道服务器实际上已启动 我想将这些组合成一个 ping 命令 我尝试过使用不同的错误级别或不使用错误级别 0 等 它们都没有
  • 连续的 CSS 过渡

    有没有办法连续动画背景图像background position使用 CSS3 转换的属性 是的 有可能 DEMO div background url http lorempixel com 100 100 height 100px wi
  • mvc3 https 和 http

    我正在将 ASP NET 应用程序转换为 MVC3 假设我有一个需要 https 的登录页面 而其他每个页面只需要 http 如何将登录重定向到 https 并将所有其他页面保留在 http 上 任何建议都会很棒 The RequireHt
  • C++11 将工厂声明为基类的友元

    我正在尝试为派生类创建一个工厂 我只希望工厂能够创建派生类的实例 因此我创建了基本构造函数protected 派生类仅使用基类构造函数 因此它们的构造函数是protected also 我试图将工厂声明为基类的友元 以便它可以访问prote
  • CSS3 悬停/点击在移动浏览器中不起作用

    我创建了一个盒子 当鼠标悬停在另一个 div 上时 它会淡出到另一个 div 中 这一切都是使用 CSS3 完成的 然而 我意识到一个问题是悬停在移动浏览器中不起作用 有没有办法以某种方式使其适用于移动设备 或者我是否必须诉诸使用某种 JS
  • 从 Hibernate 映射获取列长度?

    为了验证我收到的数据 我需要确保长度不会超过数据库列的长度 现在所有的长度信息都存储在 Hibernate 映射文件中 是否有办法以编程方式访问这些信息 你可以做到 但这并不容易 您可能希望在启动时执行如下操作并存储值的静态缓存 有很多特殊
  • 从嵌套字典中的项目构造 pandas DataFrame

    假设我有一个嵌套字典 user dict 其结构 Level 1 用户 ID 长整型 Level 2 类别 字符串 Level 3 各种属性 浮点数 整数等 例如 该字典的条目为 user dict 12 Category 1 att 1
  • Java 64位JDK问题

    如果我使用 64 位 JDK 编译一些 java 文件 然后从中创建一个 JAR 文件 生成的 JAR 能否正确地与 32 位 JRE 一起工作 还是我必须使用 32 位 JDK Thanks 生成的 JAR 将正确地与 32 位 JRE
  • preg_match():找不到结束分隔符“^”[重复]

    这个问题在这里已经有答案了 警告 preg match 在第 29 行 functions validations php 中找不到结束分隔符 代码 if preg match mail pat email components 我要编辑什
  • LinqPad - 将 SQL 转换为 Linq 命令

    我最近购买了 LINQPad 希望它能让我将 SQL 语句转换为 LINQ 语句 使用 LINQPad 我可以附加数据库并运行返回我需要的结果的 SQL 语句 但我找不到将该 SQL 语句转换为 LINQ 的 命令 您能否让我知道如何使用
  • 如何在 QT Creator 中推广自定义小部件

    在 qt 5 2 1 中 我创建了一些自定义小部件 例如按钮 传统上有两种方法可以做到这一点 您可以推广现有的小部件 并更改 添加功能 或者从头开始创建自定义小部件 我用过后者 然而 在某些情况下 我想使用我的自定义小部件 但通过升级来更改
  • 为什么 svg 引用带有剪辑路径的元素不起作用?

    实现 SVG 精灵时
  • SQL Server,将命名实例转换为默认实例?

    我需要将 SQL Server 2005 的命名实例转换为默认实例 有没有办法在不重新安装的情况下做到这一点 问题是 六分之二的开发人员安装了命名实例 因此 对于我们其他 4 个人来说 它变成了一个痛苦的改变连接字符串 我正在寻找阻力最小的
  • 正则表达式删除开头的数字和 -

    我正在处理字符串列表 但我想更改字符串 以便它们对用户来说看起来不难看 一个示例列表是 2736162 Magazines 23 2311 Numbers 1 38122 Faces 5 231123 Newspapers 31 31235
  • Javascript和JQuery,如何验证select中是否存在选项元素?

    使用 JQuery 我尝试根据查询字符串在 select 元素中设置一个选项 这个问题类似于this 但是我仍然需要知道如何在执行选择之前检查元素是否存在 否则页面将不断刷新自身 请参阅下面的退出条件 获取查询字符串是使用函数 getPar
  • 当对象的属性被设置时调用函数

    我真的不知道如何解释这一点 但我会向您展示代码并告诉您我想要实现的目标 假设我制作了一个快速对象 var test 然后我为其设置一个属性 我insist在语法上 它不能使用任何函数作为设置器 test hello world 很简单 嗯