javascript函数中的代码属性

时间:2017-12-26 08:01:16

标签: javascript

function hello(){
  console.log('Goodbye');
}

是一个对象。 js中的几乎所有东西都是对象。我们有name属性及其hello,但code属性呢?我该如何访问?另外,我有{}内的代码或上面的全部内容吗?

2 个答案:

答案 0 :(得分:2)

  

另外,我有{}内的代码或上面的全部内容吗?

对于您的方法,请使用toString

hello.toString()

<强>演示

&#13;
&#13;
function hello(){
  console.log('Goodbye');
}
console.log(hello.toString());
&#13;
&#13;
&#13;

如果您只想访问{}之间的代码,那么(假设它不是箭头函数

var code = hello.toString();
code = code.substring( code.indexOf( "{" ) + 1 ); //remove code before first {
code = code.substring( 0, code.lastIndexOf( "}" ) - 1 ); //remove code from last }

如果是箭头功能,那么

var hello = () => console.log('Goodbye');
var code = hello.toString();
code = code.substring( code.indexOf( "=>" ) + 2 ); //get the string after =>

答案 1 :(得分:1)

函数的代码不在公共可访问的属性中。它存储在内部[[Code]]属性中,如Creating Function Objects中所述。

函数的toString()方法将整个函数定义作为字符串返回。