javascript – JS TypeError:不是函数

我的情况如下

function Field(data){
    var name = data.name;
    this.foo = function(){
        console.log("foo");    
    }
}
...
field = new Field(someData);
...
console.log(field.name); //returns its name as expected
field.foo(); //TypeError: field.foo is not a function

有什么问题?我在angularjs应用程序中使用它.

我是后端开发人员所以请理解.

最佳答案 您需要为当前上下文指定名称(this).但是,foo()函数应该在您的问题中正常工作.请参阅此代码段作为演示:

function Field(data) {
  this.name = data.name;
  this.foo = function() {
    document.writeln('foo' + '<br />');
  }
}

var someData = { name: 'MyName' };
var field = new Field(someData);
document.writeln(field.name + '<br />');
field.foo();
点赞