Javascript函数包含其代码

时间:2016-04-06 04:39:53

标签: javascript function

我是Javascript的新手。我在某个时候做了一个课程,我试图记住一个概念,即所有函数都是包含属性的对象,包含写在函数内的代码和另一个包含函数名称的属性。

我试过了,我发现名字属性如下。但无法找到代码属性。这确实存在,或者我可能错了。



console.log(
  (function f() {
    a = 1
  }.name)
)




所以属性应该返回

  

A = 1

不要做任何事情。我正在刷我的JS,因为我想学习角度。

3 个答案:

答案 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}; 似乎是一个更好的选择,这是一个标准功能。更多相关内容:

.toString();

答案 2 :(得分:0)

尝试f.toString(),其中f是您希望获取源代码的函数。