gpt4 book ai didi

c# - JavaScript 等同于 C# 的 DynamicObject?

转载 作者:搜寻专家 更新时间:2023-11-01 04:19:11 25 4
gpt4 key购买 nike

需要说明的是,继承 DynamicObject(当然在 C# 中)的类与 JavaScript 的动态变量不是同一个概念。 DynamicObject 允许实现者以编程方式确定对象具有哪些成员,包括方法。

编辑:我知道 JavaScript 对象可以在运行时添加任何成员。这根本不是我要说的。下面是一个 C# 示例,展示了 DynamicObject 的作用:

public class SampleObject : DynamicObject
{
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
result = binder.Name;
return true;
}
}

dynamic obj = new SampleObject();
Console.WriteLine(obj.SampleProperty);
//Prints "SampleProperty".

当访问 obj 的成员时,它使用 TryGetMember 以编程方式确定该成员是否存在以及它的值是什么。简而言之,成员的存在是在请求时确定的,而不是通过事先添加它来确定的。我希望这能稍微澄清这个问题。如果您想知道,我正在尝试确定是否有可能在 JavaScript 中创建一个对象,当函数调用语法在其上使用时,如下所示:

myAPI.uploadSomeData(data1, data2)

uploadSomeData 调用转到类似“TryGetMember”的函数,该函数使用名称“uploadSomeData”执行 $.ajax 调用以生成 URL,返回值是结果。

最佳答案

令人惊奇的是,在仅仅几周的偶然 JavaScript 研究之后,我就设法找到了两个答案:

ES6 Proxies

noSuchMethod

关于c# - JavaScript 等同于 C# 的 DynamicObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12150544/

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