TypeError: "x" is not a function
JavaScript çãis not a functionãä¾å¤æå¨è©¦åå°ä¸åå¼ç¶ä½å½å¼å¼å«ï¼ä½è©²å¼å¯¦éä¸ä¸¦éå½å¼æç¼çã
è¨æ¯
TypeError: "x" is not a function.ï¼åºæ¼ V8 & Firefox & Safariï¼
é¯èª¤é¡å
TypeError
åªè£¡åºé¯äºï¼
ç¨å¼è©¦åå°ä¸åå¼ç¶ä½å½å¼å¼å«ï¼ä½è©²å¼å¯¦éä¸ä¸¦éå½å¼ãæäºç¨å¼ç¢¼é æä½ æä¾ä¸åå½å¼ï¼ä½ä½ æ²æé麼åã
å½å¼å稱æ¯ä¸æ¯ææ¼åé¯èª¤ï¼æè
ä½ å¼å«æ¹æ³çç©ä»¶ä¸æ²æéåå½å¼ï¼ä¾å¦ï¼JavaScript ç Object æ²æ map å½å¼ï¼ä½ JavaScript ç Array ç©ä»¶æã
æè¨±å¤å §å»ºå½å¼éè¦ä¸åï¼åå¼ï¼å½å¼ãä½ å¿ é æä¾ä¸åå½å¼ï¼æè½è®éäºæ¹æ³æ£å¸¸éä½ï¼
-
ç¶ä½¿ç¨
ArrayæTypedArrayç©ä»¶æï¼
ç¯ä¾
>å½å¼å稱æ¼åé¯èª¤
éç¨®æ æ³ç¶å¸¸ç¼çï¼å³æ¹æ³åç¨±ææ¼åé¯èª¤ï¼
const x = document.getElementByID("foo");
// TypeError: document.getElementByID is not a function
æ£ç¢ºçå½å¼åç¨±æ¯ getElementByIdï¼
const x = document.getElementById("foo");
å¨é¯èª¤çç©ä»¶ä¸å¼å«å½å¼
å°æ¼æäºæ¹æ³ï¼ä½ å¿
é æä¾ä¸åï¼åå¼ï¼å½å¼ï¼èä¸å®åªå°ç¹å®çç©ä»¶ææãå¨éåç¯ä¾ä¸ï¼æå使ç¨äº Array.prototype.map()ï¼å®åªé©ç¨æ¼ Array ç©ä»¶ã
const obj = { a: 13, b: 37, c: 42 };
obj.map((num) => num * 2);
// TypeError: obj.map is not a function
æ¹ç¨é£åï¼
const numbers = [1, 4, 9];
numbers.map((num) => num * 2); // [2, 8, 18]
å½å¼èå·²åå¨ç屬æ§åå
ææåå¨å»ºç«é¡å¥æï¼ä½ å¯è½æè®ä¸å屬æ§åä¸åå½å¼ä½¿ç¨ç¸åçå稱ãç¶å¼å«è©²å½å¼æï¼ç·¨è¯å¨æèªçºè©²å½å¼ä¸åå¨ã
function Dog() {
this.age = 11;
this.color = "black";
this.name = "Ralph";
return this;
}
Dog.prototype.name = function (name) {
this.name = name;
return this;
};
const myNewDog = new Dog();
myNewDog.name("Cassidy"); // TypeError: myNewDog.name is not a function
æ¹ç¨ä¸åç屬æ§å稱ï¼
function Dog() {
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;
};
const 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);
console.log(`2 x (3 + 5) is ${sixteen}`);
// Uncaught TypeError: 2 is not a function
ä½ å¯ä»¥ééå ä¸ * éç®åä¾ä¿®æ£ç¨å¼ç¢¼ï¼
const sixteen = 2 * (3 + 5);
console.log(`2 x (3 + 5) æ¯ ${sixteen}`);
// 2 x (3 + 5) æ¯ 16
æ£ç¢ºå°å¼å ¥å¯åºç模çµ
è«ç¢ºä¿ä½ æ£ç¢ºå°å¼å ¥æ¨¡çµã
ä¸å helpers å½å¼åº«ç¯ä¾ï¼helpers.jsï¼
function helpers() {}
helpers.groupBy = function (objectArray, property) {
return objectArray.reduce((acc, obj) => {
const key = obj[property];
acc[key] ??= [];
acc[key].push(obj);
return acc;
}, {});
};
export default helpers;
æ£ç¢ºçå¼å
¥ç¨æ³ï¼App.jsï¼ï¼
import helpers from "./helpers";