JavaScript å¼å¸¸"is not a function"ä¼å¨è¯å¾å»è°ç¨ä¸ä¸ªå彿°ä¸æ ·çå¼ï¼ä½æ¯è¯¥å¼å®é ä¸ä¸æ¯å½æ°æ¶è¢«æåºã
ä¿¡æ¯TypeError: Object doesn't support property or method {x} (Edge) TypeError: "x" is not a functioné误类å åªéåºéäºï¼
é®é¢åºå¨ä½ è¯å¾å»è°ç¨ä¸ä¸ªå彿°ä¸æ ·çå¼ï¼ä½æ¯è¯¥å¼å®é ä¸ä¸æ¯å½æ°ï¼ææ¶åä½ ç代ç éè¦è°ç¨ä¸äºå½æ°ï¼ä½æ¯é£ç§å¼å¹¶ä¸è½å½ä½å½æ°æ¥è¢«è°ç¨ã
ä¹è®¸å½æ°åç§°ä¸æéå«åï¼ä¹è®¸ä½ æ£å¨è°ç¨ 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'ç¸å ³
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4