我在chrome控制台中编写了一些代码来获取网页上的所有功能:
for(var b in window) {
if(typeof(b) == "function") console.log(b);}
尽管网页上有功能,但我得到的唯一输出是“未定义”
答案 0 :(得分:4)
b
是窗口对象的KEY,window[b]
是值。密钥将始终是字符串。
for(var b in window) {
if(typeof(window[b]) == "function") console.log(b);}
答案 1 :(得分:1)
for(var b in window) {
在这里,您要遍历键,而不是对象的属性。这些键中的typeof
是string
,因此将永远无法满足if
下的条件。在控制台中显示的undefined
是for
语句的值(未定义)。
改为
for(var b in window) {
if(typeof(window[b]) == "function") console.log(window[b]);}
答案 2 :(得分:0)
b是属性名称(字符串),而不是函数本身。尝试这样:
for(var b in window){
if(typeof window[b]=='function') console.log(b)
}
答案 3 :(得分:0)
b变量曾经是类型字符串,更改左侧条件以获得window功能。
typeof(b) // return string
typeof(window[b]) // return function
所以答案是这样的:
for(var b in window) {
if(typeof(window[b]) === "function")
{
console.log(b);
}
}
答案 4 :(得分:0)
如果我们考虑您的代码'typeof(b)==“ function”',它将永远不会检查此条件,因为typeof(b)始终是字符串。
获取“字符串”键的基本语法是obj [“ stringFormatKey”]。所以这是解决方案。
for(var b in window) {
if(typeof(window[b]) == "function") console.log(b);}