gpt4 book ai didi

javascript - 配置属性遮蔽

转载 作者:行者123 更新时间:2023-11-28 20:26:39 26 4
gpt4 key购买 nike

开始使用 JavaScript 中配置的对象,但有些问题给我带来了一些问题。

查看此代码:

function Monster() {
}

function Animal() {
Object.defineProperty(this, "name", {
set: function(n) { },
get: function() { return "Jim"; } // hard-coded to demonstrate problem
});
}

Monster.prototype = new Animal();

var monster = new Monster();
monster.name = "John";
monster.name // Still returns Jim. I need to assign the property to THIS object, so Jim is shadowed by John.

正如评论所说,这是输出“Jim”,因为 getter 是硬编码返回的。

我不想每次调用 monster.name 时都更改我的原型(prototype) - 我想要在我的 Monster 实例上有一个新的隐藏属性。我该如何管理?

最佳答案

您在 getter 函数中硬编码了“Jim”,因此无论如何它都会返回“Jim”。您需要将属性的值存储在局部变量中,并从那里获取它:

function Animal() {
var myName = "Jim";
Object.defineProperty(this, "name", {
set: function(n) { myName = n },
get: function() { return myName; }
});
}

<强> FIDDLE

关于javascript - 配置属性遮蔽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17264268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com