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

Sta*_*ers 10 javascript

非常简单的脚本:

function foo(){
    return "bar"
}

console.log( foo() );
Run Code Online (Sandbox Code Playgroud)

安慰:

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

我怎么称呼foo(); 用于调试和实验目的?

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

http://jsfiddle.net/m2muL/

Tra*_*s J 9

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

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

console.log(foo()); //ReferenceError: foo is not defined
Run Code Online (Sandbox Code Playgroud)

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

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

console.log(foobar.foo()); //"bar"
Run Code Online (Sandbox Code Playgroud)

如果你不能引用foo,那么就不能调用它.