TypeError: "x" is not a function
JavaScript å¼å¸¸"is not a function"ä¼å¨è¯å¾å»è°ç¨ä¸ä¸ªå彿°ä¸æ ·çå¼ï¼ä½æ¯è¯¥å¼å®é ä¸ä¸æ¯å½æ°æ¶è¢«æåºã
ä¿¡æ¯
TypeError: Object doesn't support property or method {x} (Edge)
TypeError: "x" is not a function
é误类å
TypeError
åªéåºéäºï¼
é®é¢åºå¨ä½ è¯å¾å»è°ç¨ä¸ä¸ªå彿°ä¸æ ·çå¼ï¼ä½æ¯è¯¥å¼å®é ä¸ä¸æ¯å½æ°ï¼ææ¶åä½ ç代ç éè¦è°ç¨ä¸äºå½æ°ï¼ä½æ¯é£ç§å¼å¹¶ä¸è½å½ä½å½æ°æ¥è¢«è°ç¨ã
ä¹è®¸å½æ°åç§°ä¸æéå«åï¼ä¹è®¸ä½ æ£å¨è°ç¨ Object 对象没æè¿ä¸ªæ¹æ³ï¼ä¾å¦ï¼å¨ JavaScript ä¸å纯ç对象 (Object) 没æmap彿°ï¼ä½æ¯ JavaScript æ°ç» (Array) å¯¹è±¡å´æè¿ä¸ªå½æ°ã
忝å¦ï¼å¨ JavaScript ä¸å¾å¤åç对象çå ç½®æ¹æ³éè¦ä½ æä¾ä¸ä¸ªï¼åè°ï¼å½æ°ãæä»¥ä½ å¿ é¡»æä¾ä¸ä¸ªå½æ°ï¼ä»¥ä½¿è¿äºæ¹æ³æ£å¸¸å·¥ä½ï¼
-
å½ä½ å¨ä½¿ç¨
ArrayæTypedArray对象æ¶ï¼
示ä¾
>彿°çåç§°é误
彿°çåç§°æ¼åé误ï¼è¿ç§æ 嵿¯ç»å¸¸åççï¼
var x = document.getElementByID("foo");
// TypeError: document.getElementByID is not a function
æ£ç¡®çæ¹æ³ååºè¯¥æ¯ getElementByIdï¼
var x = document.getElementById("foo");
è°ç¨ Object ç±»åä¸ä¸åå¨çæ¹æ³
å¯¹äºæäºç¹æ®çæ¹æ³ï¼å®åªå±äºæäºç¹å®çåç对象ä¸ï¼ä½ å¿
é¡»æä¾ä¸ä¸ªåè°å½æ°æè½æ£å¸¸è¿è¡ãä¾å¦ï¼è¿éè°ç¨äºä¸ä¸ª Array.prototype.map() æ¹æ³ï¼ä½æ¯è¿æ¹æ³åªè½è¢« Array 对象æè°ç¨ã
var obj = { a: 13, b: 37, c: 42 };
obj.map(function (num) {
return num * 2;
});
// TypeError: obj.map is not a function
æ£ç¡®çåæ³ï¼ä½¿ç¨ä¸ä¸ªæ°ç»æ¥ä»£æ¿ï¼
var numbers = [1, 4, 9];
numbers.map(function (num) {
return num * 2;
});
// Array [ 2, 8, 18 ]
彿°ä¸å·²æå±æ§éå
å½ä½ å¨å建类æ¶ï¼å¯è½ä¼åå¨æä¸ªå±æ§åæä¸ªæ¹æ³çåç§°ç¸åï¼å½ä½ å¨è°ç¨è¯¥å½æ°æ¶ï¼ç¼è¯å¨ä¼è®¤ä¸ºè¯¥å½æ°ä¸åå¨ã
var Dog = function () {
this.age = 11;
this.color = "black";
this.name = "Ralph";
return this;
};
Dog.prototype.name = function (name) {
this.name = name;
return this;
};
var myNewDog = new Dog();
myNewDog.name("Cassidy"); //Uncaught TypeError: myNewDog.name is not a function
æ£ç¡®çåæ³æ¯ä½¿ç¨ä¸åçåéåã
var Dog = function () {
this.age = 11;
this.color = "black";
this.dogName = "Ralph"; //Using this.dogName instead of .name
return this;
};
Dog.prototype.name = function (name) {
this.dogName = name;
return this;
};
var myNewDog = new Dog();
myNewDog.name("Cassidy"); //Dog { age: 11, color: 'black', dogName: 'Cassidy' }
ä½¿ç¨æ¬å·è¿è¡ä¹æ³è¿ç®
卿°å¦ä¸ï¼ä½ å¯ä»¥å° 2 à (3 + 5) å为 2*(3 + 5) æè çç¥ä¸º 2(3 + 5).
使ç¨åè æ¶å°ä¼æåºé误ï¼
const sixteen = 2(3 + 5);
alert("2 x (3 + 5) is " + String(sixteen));
//Uncaught TypeError: 2 is not a function
ä½ å¯ä»¥æ·»å 乿³è¿ç®ç¬¦ * æ¥æ¹æ£ä»£ç ï¼
const sixteen = 2 * (3 + 5);
alert("2 x (3 + 5) is " + String(sixteen));
//2 x (3 + 5) is 16
æ£ç¡®å°å¯¼å ¥åå¯¼åºæ¨¡å
ç¡®ä¿æ£ç¡®å¯¼å ¥æ¨¡åã
以ä¸ä¸ºä¸ä¸ªç¤ºä¾æ¨¡å (helpers.js)
let helpers = function () { };
helpers.groupBy = function (objectArray, property) {
return objectArray.reduce(function (acc, obj) {
var key = obj[property];
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(obj);
return acc;
},
{});
}
export default helpers;
å¨ App.js䏿£ç¡®å¯¼å
¥è¯¥æ¨¡åï¼
import helpers from './helpers'