Javascript从对象表调用函数

Kni*_*ght 0 javascript arrays function object

我正在学习javascript,我在从表调用函数时遇到问题.这是代码:

function Constructor(v1,v2,v3)
{
  this.v1 = v1;
  this.v2 = v2;
  this.funk = function()
  {
    console.log("Test: "+ v3 );
  }
}

var obj1 = new Constructor("par1","par2","par3");
var arr = ["w1","w2","w3",obj1];

function f2()
{            
  obj1.funk(); //works ok
  console.log("test "+arr[3].funk.call() ); //doesn't work
}
Run Code Online (Sandbox Code Playgroud)

Irk*_*der 5

调用的输出f2()是:

Test: par3
Test: par3
test undefined
Run Code Online (Sandbox Code Playgroud)

这有意义,funk被调用两次并记录前两行.第三行是test undefined因为funk不返回任何东西.它被调用并记录其测试行,然后返回undefined以记录在f2函数的最后一行.