函数是Javascript中变量的另一种类型(当然有些细微差别)。在另一个函数中创建一个函数会更改该函数的作用域,就像改变变量的作用域一样。这对于与闭包一起使用以减少总体全局名称空间污染尤其重要。
除非已将另一个函数中定义的函数附加到该函数外部可以访问的对象,否则它们将无法在该函数外部访问:
function foo(doBar){ function bar() { console.log( 'bar' ); } function baz() { console.log( 'baz' ); } window.baz = baz; if ( doBar ) bar();}
在此示例中,baz函数将
foo在运行后可用,因为它已被覆盖
window.baz。除
foo函数中包含的作用域外,bar函数将无法用于任何上下文。
作为另一个示例:
function Fizz(qux){ this.buzz = function(){ console.log( qux ); };}
该
Fizz函数被设计为构造函数,以便在运行时将
buzz函数分配给新创建的对象。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)