Javascript - Object.getOwnPropertyNames不显示构造函数属性

use*_*546 2 javascript

为什么"numMyNumber"没有出现在Object.getOwnPropertyNames中?

在Firefox中使用FireBug控制台.

"use strict";

// MyFunction
function MyFunction() {
   var numMyNumber = 10;
   return numMyNumber;
}

// ["prototype", "length", "name", "arguments", "caller"]
// Why does numMyNumber not appear?
console.log(Object.getOwnPropertyNames (MyFunction)); 

// 10
console.log(MyFunction());
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 7

numMyNumber是一个局部变量.
它不是该功能的属性.

要创建函数的属性,您需要在函数上创建属性,就像任何其他对象一样:

MyFunction.someProperty = 42;
Run Code Online (Sandbox Code Playgroud)

请注意,函数的属性绝不是特定调用的本地属性.