Friday, September 19, 2025
HomeLanguagesJavascriptJavaScript: Uncaught TypeError: n is not a function

JavaScript: Uncaught TypeError: n is not a function

Uncaught TypeError: ā€˜n’ is not a function:

This is a standard JavaScript error when trying to call a function before it is defined. This error occurs if you try to execute a function that is not initialized or is not initialized correctly. This means that the expression did not return a function object. So you need to understand that what you are trying to achieve is not a feature.

Message:

TypeError: Object doesn’t support property or method {n} (Edge)

TypeError: ā€œnā€ is not a function

Error Type:

TypeError

What Causes TypeError: ā€œnā€ is not a function:

Example 1: This scenario occurs when there is a typo in the method name :

HTML




<!DOCTYPE html>
<html>
<head>
Ā Ā Ā Ā <title>Type Error</title>
</head>
Ā 
<body>
Ā Ā Ā Ā <script>
Ā Ā Ā Ā Ā Ā Ā Ā let n = document.getElementByID('GFG');
Ā Ā Ā Ā Ā Ā Ā Ā document.write(n);
Ā Ā Ā Ā </script>
</body>
</html>


Output: While running the above example, it throws a JavaScript error.

TypeError: document.getElementByID is not a function

The correct function name is getElementById:

Example 2: This case occurs when an object doesn’t contain a function when it’s called.

HTML




<!DOCTYPE html>
<html>
<head>
Ā Ā Ā Ā <title>Type Error</title>
</head>
Ā 
<body>
Ā Ā Ā Ā <script>
Ā Ā Ā Ā Ā Ā Ā Ā let num = {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā foo: function () {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā console.log("foo called");
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā }
Ā Ā Ā Ā Ā Ā Ā Ā };
Ā Ā Ā Ā Ā Ā Ā Ā num.fo();
Ā Ā Ā Ā </script>
</body>
</html>


Output:

TypeError: num.fo is not a function

Explanation: In the above example, the num object contains a foo () function. However, the above code will try to call the foo () function, which does not include num. So, while running the above example, it throws a JavaScript error

The correct function call is foo():

Example 3: Certain methods need to provide a function that works only for a particular object.

HTML




<!DOCTYPE html>
<html>
<head>
Ā Ā Ā Ā <title>Type Error</title>
</head>
Ā 
<body>
Ā Ā Ā Ā <script>
Ā Ā Ā Ā Ā Ā Ā Ā let arr = { a: 1, b: 2, c: 3 };
Ā Ā Ā Ā Ā Ā Ā Ā arr.map(function (num)){
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā return num;
Ā Ā Ā Ā Ā Ā Ā Ā });
Ā Ā Ā Ā </script>
</body>
</html>


Output:

TypeError: arr.map is not a function

Explanation: In the above example, Array.prototype.map() is used, which will work with Array objects only. So, while running the above example, it throws a JavaScript error.

The correct way is to declare the array properly like arr=[35,42,90]

Example 4: Sometimes when you create a class, you may have properties and functions with the same name. When a function is called, the compiler assumes that the function no longer exists.

HTML




<!DOCTYPE html>
<html>
<head>
Ā Ā Ā Ā <title>Type Error</title>
</head>
Ā 
<body>
Ā Ā Ā Ā <script>
Ā Ā Ā Ā Ā Ā Ā Ā var Boy = function () {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā this.age = 15;
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā this.color = "white";
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā this.name = "John"
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā return this;
Ā Ā Ā Ā Ā Ā Ā Ā }
Ā Ā Ā Ā Ā Ā Ā Ā Boy.prototype.name = function (name) {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā this.name = name;
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā return this;
Ā Ā Ā Ā Ā Ā Ā Ā }
Ā Ā Ā Ā Ā Ā Ā Ā var myNewBoy = new Boy();
Ā Ā Ā Ā Ā Ā Ā Ā myNewBoy.name("Harry");
Ā Ā Ā Ā </script>
</body>
</html>


Output:

TypeError: myNewBoy.name is not a function

Explanation: In the above example, the name is the pre-existing property. So, this code throws the error.

The correct way to define the property is:

HTML




<!DOCTYPE html>
<html>
<head>
Ā Ā Ā Ā <title>Type Error</title>
</head>
Ā 
<body>
Ā Ā Ā Ā <script>
Ā Ā Ā Ā Ā Ā Ā Ā var Boy = function () {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā this.age = 15;
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā this.color = "white";
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā this.boyName = "John"
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā return this;
Ā Ā Ā Ā Ā Ā Ā Ā }
Ā Ā Ā Ā Ā Ā Ā Ā Boy.prototype.name = function (name) {
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā this.boyName = name;
Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā Ā return this;
Ā Ā Ā Ā Ā Ā Ā Ā }
Ā Ā Ā Ā Ā Ā Ā Ā var myNewBoy = new Boy();
Ā Ā Ā Ā Ā Ā Ā Ā myNewBoy.name("Harry");
Ā Ā Ā Ā </script>
</body>
</html>


Note: Make sure to import the module correctly. Suppose we have a ā€˜helpers.js’ file. So, we have to import the app.js:

import helpers from './helpers'

Example 5: In this case, the brackets are used as multiply But they are like calling a function. So the error has occurred.

HTML




<!DOCTYPE html>
<html>
<head>
Ā Ā Ā Ā <title>Type Error</title>
</head>
Ā 
<body>
Ā Ā Ā Ā <script>
Ā Ā Ā Ā Ā Ā Ā Ā const n = 4(4 + 5);
Ā Ā Ā Ā Ā Ā Ā Ā document.write(n);
Ā Ā Ā Ā </script>
</body>
</html>


Output: This code throws the error.

TypeError: 4 is not a function

The correct way is ā€œ4*(4+5)ā€.

RELATED ARTICLES

Most Popular

Dominic
32301 POSTS0 COMMENTS
Milvus
84 POSTS0 COMMENTS
Nango Kala
6665 POSTS0 COMMENTS
Nicole Veronica
11840 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11898 POSTS0 COMMENTS
Shaida Kate Naidoo
6781 POSTS0 COMMENTS
Ted Musemwa
7056 POSTS0 COMMENTS
Thapelo Manthata
6739 POSTS0 COMMENTS
Umr Jansen
6744 POSTS0 COMMENTS