gpt4 book ai didi

javascript - 符号 '@' 在 JavaScriptCore 中意味着什么?

转载 作者:行者123 更新时间:2023-12-02 23:56:05 27 4
gpt4 key购买 nike

我正在阅读 JavaScriptCore 的源代码,不久之后我偶然发现了这一点。代码有点道理,但是使用“@”时到底会发生什么?

[...]
if (@isArray(currentElement)) {
constructor = currentElement.constructor;
[...]
if (@isArrayConstructor(constructor) && @Array !== constructor)
constructor = @undefined;
else if (@isObject(constructor)) {
constructor = constructor.@speciesSymbol;
if (constructor === null)
constructor = @Array;
}
}
[...]

我检查了thisthis但它们并没有多大帮助(“@”不是 Javascript 中的保留字符)

最佳答案

我自己找到了答案。正如 @p-s-w-g 指出的,这些是装饰器。我正在寻找的定义可以在以下位置找到:webkit/Source/JavaScriptCore/runtime/ArrayConstructor.h

inline bool isArray(ExecState* exec, JSValue argumentValue)
{
if (!argumentValue.isObject())
return false;

JSObject* argument = jsCast<JSObject*>(argumentValue);
if (argument->type() == ArrayType || argument->type() == DerivedArrayType)
return true;

if (argument->type() != ProxyObjectType)
return false;
return isArraySlow(exec, jsCast<ProxyObject*>(argument));
}

关于javascript - 符号 '@' 在 JavaScriptCore 中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55385283/

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