是一个全局范围的函数内部的javascript函数?

Oli*_*ams 2 javascript oop

这是我做的测试的一个例子:

function f1(var1){
  alert('f1 called');
  function f2(var2){
    alert('f2 called');

  }
  this.data='something else';
  this.f2 = f2;
}
f1.data='something';
f1.f3 = function(var3){
    alert('f3 called');
}
console.log(f1); //shows the function
console.log(f1.data); //can have properties attached - cool
console.log(f1.f2(2)); //error: "f1.f2" is not a function
console.log(f1.f3(3)); //this works as expected
Run Code Online (Sandbox Code Playgroud)

似乎f2f1内的函数在范围内是局部的.是否有任何等效的方法来调用这样的函数内的函数?

mad*_*kst 7

不幸的是,this必然要在全球范围内window,因为你还没有实例化的一个实例f1使用new f1();

var f = new f1();
f.f2(); // Now works
Run Code Online (Sandbox Code Playgroud)