从chrome开发者控制台调用javascript函数

时间:2014-05-13 20:57:47

标签: javascript

非常简单的脚本:

function foo(){
    return "bar"
}

console.log( foo() );

控制台:

> bar // sanity test that proves everything's working
> foo(); // this guy is key!
> ReferenceError: foo is not defined

我该如何调用foo();用于调试和实验目的?

这不是一种做法吗?我喜欢使用IRB / Rails控制台来验证我的ruby代码,并希望用JavaScript做同样的事情

http://jsfiddle.net/m2muL/

2 个答案:

答案 0 :(得分:9)

问题是您的foo功能不属于全局范围。控制台基本上可以访问window所做的所有事情。因此,如果在那里未定义,则在控制台中未定义。例如,这可能是控制台中没有foo的示例。

(function(){
   function foo(){
     return "bar";
   } 
   console.log(foo()); //"bar"
})()

console.log(foo()); //ReferenceError: foo is not defined

找到一种方法来查找此方法的公开位置。如果它位于对象或方法内部,请确保从控制台引用它。

var foobar = {
 foo: function(){ return "bar" ;}
};

console.log(foobar.foo()); //"bar"

如果您不能引用foo,那么就无法调用它。

答案 1 :(得分:2)

您正在尝试在JSFiddle中执行此操作,这会将您的javascript“隐藏”在您的控制台之外。它不是真正的执行范围。它不像你假设的那样在那里工作......

如果您创建了一个简单的HTML文件并在标签之间插入了javascript,那么在控制台中运行“foo()”就不会有问题。

创建test.html并将其放入:

<script>
function foo(){
    return "bar"
}
console.log( foo() );
</script>