gpt4 book ai didi

javascript - 如何将 var myKey = "keyP"映射到 functionP.myKey

转载 作者:行者123 更新时间:2023-11-28 16:03:08 25 4
gpt4 key购买 nike

据我了解,以下陈述是相等的

  • 对象.属性
  • 对象[“属性”]

所以,我一直在做一些测试,但我不知道如何使点表示法对 functionP 正确工作。

我通常使用转储工具 screendump somewhere on this page 看看发生了什么,但它似乎没有显示函数的属性。

为什么我可以这样做

alert(functionE());     // returns key and date
alert(functionE.keyE); // returns key and date

function functionE()
{
var myKey = "keyE";

functionE[myKey] = myKey + " +++ " + Date();
return functionE[myKey];
}

但不是这个

alert(functionP());     // returns key and date
alert(functionP.keyP); // RETURNS UNDEFINED

function functionP()
{
var myKey = "keyP";

functionP.myKey = myKey + " +++ " + Date();
return functionP.myKey;
}

虽然我可以做到这一点

alert(functionT());     // returns key and date
alert(functionT.keyT); // returns key and date

function functionT()
{
functionT.keyT = "keyT" + " +++ " + Date();
return functionT.keyT;
}

最佳答案

因为 functionP.myKey 相当于 functionP['myKey'],而不是 functionP[myKey]

functionE 是执行您尝试执行的操作的正确方法。

但是,您可以执行以下操作:

function functionX() {
var key = 'keyP';
var value = 'foo';

this.__defineGetter__(key, function() {
return value;
});

this.__defineSetter__(key, function(val) {
value = val;
});
}

现在它可以工作了:

> var o = new functionX()
> o.keyP
"foo"

__defineGetter____defineSetter__ 不是标准 JavaScript,所以我不会使用它们。使用functionE

关于javascript - 如何将 var myKey = "keyP"映射到 functionP.myKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16200535/

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