3
我有情況如下JS類型錯誤:不是一個函數
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'屬性。我不確定那麼這個屬性的存在是預期的。我想這跟你所問的問題有某種關係。你確定代碼中沒有你沒有發佈的東西嗎?就像構造函數結尾的'return data'一樣? –
https://jsfiddle.net/7Ldp9gso/ foo方法按預期工作,它的'.name'不會與該代碼一起工作。 – GillesC
@GillesC你怎麼知道。你不知道傳入的是什麼。顯然,如果OP沒有在'.name'中得到一個錯誤,那麼就有一個名字鍵傳入的對象。手頭的問題是,函數內部創建的變量是一個私有變量。 – Michelangelo