【发布时间】:2018-09-15 09:05:17
【问题描述】:
我正在寻找一种方法来修改由文字定义的对象而不将其传递给另一个函数。
示例:
let o = {a:1,b:2}
console.log(o.a===3)
我认为当我使用字面量定义对象时,会调用 Object 构造函数,所以我确实覆盖了Object.prototype.constructor,但只有在我执行new Object({a:1,b:2}) 时才会调用它
用更简单的术语来说,任何人都可以在不将对象 o 传递给函数或代理或使用 o.a=3 或 with 关键字(其中 o 使用对象字面量定义)的情况下生成 a=3 吗?
【问题讨论】:
-
这听起来像XY problem。您要解决的具体问题是什么?
-
@vlaz 使每个 javascript 对象都可观察,而无需将其传递给另一个函数
-
我希望 Javascript 更改一个值,但我不想指定该值在哪里。这基本上就是您要告诉我们的?
-
@Delta 就问题而言,它没有任何意义,因此无法回答。请扩展它并解释您提到的具体要求。为什么不能将它传递给函数?为什么不能只分配一个值?
-
@DanielHilgarth 我想隐式地做到这一点,例如通过覆盖构造函数,但我找不到对象文字的构造函数
标签: javascript object prototype object-literal