我是Javascript
的新手。我在某个时候做了一个课程,我试图记住一个概念,即所有函数都是包含属性的对象,包含写在函数内的代码和另一个包含函数名称的属性。
我试过了,我发现名字属性如下。但无法找到代码属性。这确实存在,或者我可能错了。
console.log(
(function f() {
a = 1
}.name)
)

所以属性应该返回
A = 1
不要做任何事情。我正在刷我的JS,因为我想学习角度。
答案 0 :(得分:4)
但无法找到代码属性。这确实存在,或者我可能错了。
它存在概念,但它是内部属性,无法从用户代码访问。它被称为[[ECMAScriptCode]]
。有关详细信息,请参阅spec。
实际上,浏览器可以以他们想要的任何方式实现功能,只要它们的行为与规范中描述的一样。
您可以在用户代码中执行的操作是调用函数toString
method。这将返回函数本身的字符串表示,但确切的表示是依赖于实现的。
答案 1 :(得分:2)
我相信您正在寻找以下内容:
function.toSring();
https://jsfiddle.net/agraymd/ar5hgkv8/1/
然而,.toSource不是标准功能。来自MDN:
此功能不符合标准,不符合标准。不要 在面向Web的生产站点上使用它:它不会适用于所有人 用户。两者之间可能存在很大的不兼容性 实现和行为可能在未来发生变化。
public class Test {
public static void main(String[] args) {
int list[] = {1, 2, 3, 4, 5, 6};
似乎是一个更好的选择,这是一个标准功能。更多相关内容:
答案 2 :(得分:0)
尝试f.toString()
,其中f
是您希望获取源代码的函数。