Javascript 如何获取函数的属性和方法?
在JavaScript中,函数是一流的对象,因为它们可以像任何其他对象一样具有属性和方法Javascript 如何获取函数的属性和方法?,javascript,function,javascript-objects,console.log,Javascript,Function,Javascript Objects,Console.log,在JavaScript中,函数是一流的对象,因为它们可以像任何其他对象一样具有属性和方法 参考: 因此,如何获取函数方法和属性,因为可以在console.log(testObj)中捕获简单对象,所有详细信息都将进入浏览器控制台。 实际上,如何获取函数对象详细信息 尝试获取函数详细信息: function foo() { var a = 2; return a; }; console.log(foo); 上面只返回签名,function foo() 示例:console.log
参考:
因此,如何获取函数方法和属性,因为可以在
console.log(testObj)
中捕获简单对象,所有详细信息都将进入浏览器控制台。实际上,如何获取函数对象详细信息
尝试获取函数详细信息:
function foo() {
var a = 2;
return a;
};
console.log(foo);
上面只返回签名,function foo()
示例:
console.log(文档)代码>
您的函数没有属性
要获得自己的可枚举属性,可以使用
函数foo(){
var a=2;
返回a;
};
foo.bar=函数(x){console.log(x);};
foo.baz=42;
log(Object.keys(foo));
log(foo.toString())代码>您的函数没有属性
要获得自己的可枚举属性,可以使用
函数foo(){
var a=2;
返回a;
};
foo.bar=函数(x){console.log(x);};
foo.baz=42;
log(Object.keys(foo));
log(foo.toString())代码>将函数视为变量。Javascript在被调用时为您提供声明的整体。要获取变量,需要更改函数中声明的变量。
例如:
var a = 2;
function foo(){
a = 4;
}
console.log(a); //would give you the desired result.
将函数视为变量。Javascript在被调用时为您提供声明的整体。要获取变量,需要更改函数中声明的变量。
例如:
var a = 2;
function foo(){
a = 4;
}
console.log(a); //would give you the desired result.
使用代替console.log()
这指示控制台显示参数,确保它与属性及其值一起列出,通常作为可展开的树视图
将对象设为已应用的项
在支持浏览器方面,将给出相同的结果
console.log('%O', foo);
使用代替console.log()
这指示控制台显示参数,确保它与属性及其值一起列出,通常作为可展开的树视图
将对象设为已应用的项
在支持浏览器方面,将给出相同的结果
console.log('%O', foo);
我可能错了,这只是一个猜测,所以我把它放在注释for(foo中的var属性){if(foo.hasOwnProperty(property)){}
是如何迭代对象的属性,如果你想支持IE<9Tryconsole.log('%O',foo)代码>。(3.e)应该指示控制台将函数显示为泛型对象。@jonathan lonowski的结果与上面相同,因为您只是在控制台中传递参数。@JonathanLonowskiFireFox,版本:53
@forweb FireFox当前似乎无法识别%O
。它确实有console.dir(foo)代码>,但是,它应该给出等价的输出。我可能错了,这只是一个猜测,所以我把它放在注释中,用于(foo中的var属性){if(foo.hasOwnProperty(property)){}
是如何迭代对象的属性,如果你想支持IE<9Tryconsole.log('%O',foo)代码>。(3.e)应该指示控制台将函数显示为泛型对象。@jonathan lonowski的结果与上面相同,因为您只是在控制台中传递参数。@JonathanLonowskiFireFox,版本:53
@forweb FireFox当前似乎无法识别%O
。它确实有console.dir(foo)但是,代码>,它应该提供等效的输出。注意:Object.keys()
是在ES5中定义的,在某些(尽管非常过时)浏览器中可能不可用。资料来源:@Nina Scholz,确实如此,但我正试图在浏览器控制台中获取所有详细信息,如console.log(document)
all方法、属性等。。。去那里。@Nina Scholz我不是说如何一个接一个地获取属性,我只是问console.log(document)
或console.log(anyObject)
,需要函数对象。注意:Object.keys()
是在ES5中定义的,在某些(尽管非常过时)浏览器中可能不可用。资料来源:@Nina Scholz,确实如此,但我正试图在浏览器控制台中获取所有详细信息,如console.log(document)
all方法、属性等。。。去那里。@Nina Scholz我不是说如何一个接一个地获取属性,我只是问console.log(document)
或console.log(anyObject)
,需要函数对象。我试过console.log(foo.prototype)
,请检查并将其添加到您的答案中@如果函数被用作其他对象的构造函数,那么这可能会很有帮助,尽管您的问题并没有暗示这一点。另外,prototype
可以从console.dir(foo)浏览代码>。我已经尝试了console.log(foo.prototype)
,请检查并将其添加到您的答案中@如果函数被用作其他对象的构造函数,那么这可能会很有帮助,尽管您的问题并没有暗示这一点。另外,prototype
可以从console.dir(foo)浏览代码>。