gpt4 book ai didi

javascript - 返回引用的 Ecmascript 函数的真实示例?

转载 作者:行者123 更新时间:2023-12-03 13:00:59 25 4
gpt4 key购买 nike

ECMAScript specification, section 8.7 The Reference Specification Type状态:

The Reference type is used to explain the behaviour of such operators as delete, typeof, and the assignment operators. […] A Reference is a resolved name binding.

Function calls are permitted to return references. This possibility is admitted purely for the sake of host objects. No built-in ECMAScript function defined by this specification returns a reference and there is no provision for a user-defined function to return a reference.


最后两句话让我印象深刻。有了这个,你可以做 coolHostFn() = value 之类的事情。 ( valid syntax,顺便说一句)。所以我的问题是:
是否有任何定义主机函数对象的 ECMAScript 实现导致 Reference值(value)观?

最佳答案

谷歌浏览器的引擎就是以这种方式工作的。但是,您会注意到在控制台中您会得到 ReferenceError: Invalid left-hand side in assignment执行以下操作时:

var myObj = new Object();
function myFunc() {
myObj.test = "blah";
return myObj;
}
myFunc() = new String("foobar");

然而,这是一个早期错误,并且由于 v8 的 ECMAScript 实现,如果它正确执行 myFunc 应该可以工作。在假设引用误差之前。

那么,在 v8 的当前实现中呢?是和否。它是默认实现的(由于语言的结构),但是该功能因不同的问题而停止。 coolHostFn() = value不应该返回错误,并且确实应该能够正确执行。然而 3=4应该最肯定返回左侧分配错误。

不完全是您问题的答案,但我希望它有助于澄清为什么它不起作用。

(这是问题/票证,以防有人想插话…… http://code.google.com/p/v8/issues/detail?id=838)

关于javascript - 返回引用的 Ecmascript 函数的真实示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13124417/

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