Я имею ситуацию следующим образом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.
Имейте в виду, что бэкэнд-разработчик так, пожалуйста, поймите.
Вы никогда не кажется, чтобы установить 'name' свойство инициализируется объекта. Я не уверен, что ожидается присутствие этого свойства. Думаю, тогда это как-то связано с вопросом, о котором вы спрашиваете. Вы уверены, что в коде нет ничего, что вы не разместили здесь? Как «вернуть данные» в конце функции конструктора? –
https://jsfiddle.net/7Ldp9gso/ метод foo работает как ожидалось, это '.name', который не будет работать с этим кодом. – GillesC
@ GillesC Как вы можете рассказать. Вы не знаете, что передается. Очевидно, что если OP не получает ошибку с '.name', есть объект, переданный с ключом имени. Проблема в том, что переменная, созданная внутри функции, является частной переменной. – Michelangelo