Javascript: What is the difference between Function and Class

Active3 hr before
Viewed126 times

5 Answers


"Class" is only used conceptually to describe the above practice.,There is technically no class, they're both just functions. Any function can be invoked as a constructor with the keyword new and the prototype property of that function is used for the object to inherit methods from.,NOTE: A prototype property is automatically created for every function, to allow for the possibility that the function will be used as a constructor.,Function instances that can be used as a constructor have a prototype property.

So when someone says to you "make a color class" or whatever, you would do:

function Color(r, g, b) {
   this.r = r;
   this.g = g;
   this.b = b;

Color.prototype.method1 = function() {


Color.prototype.method2 = function() {

load more v

The objects can also be called without using parenthesis.,Example: The following example shows the method that is invoked with an object called employee.,JavaScript Methods: A JavaScript method is a property of an object that contains a function definition. Methods are functions stored as object properties. Object method can be accessed with the following syntax:,Actions that can be performed on objects are what we term JavaScript methods.


function functionName(parameters) {
   // Content



object = {
   methodName: function() {
      // Content



Rahul works with Department sales
load more v

Classes are a template for creating objects. They encapsulate data with code to work on that data. Classes in JS are built on prototypes but also have some syntax and semantics that are not shared with ES5 class-like semantics.,ReferenceError: can't access lexical declaration`X' before initialization,SyntaxError: missing = in const declaration,An important difference between function declarations and class declarations is that function declarations are hoisted and class declarations are not. You first need to declare your class and then access it, otherwise code like the following will throw a ReferenceError:

class Rectangle {
   constructor(height, width) {
      this.height = height;
      this.width = width;
load more v

Prior to ES6, there was a lot of confusion about the differences between a factory function and a constructor function in JavaScript. Since ES6 has the `class` keyword, a lot of people seem to think that solved many problems with constructor functions. It didn’t. Let’s explore the major differences you still need to be aware of.,In JavaScript, any function can return a new object. When it’s not a constructor function or class, it’s called a factory function.,I argue that the class to factory refactor is common enough that it should be considered a standard extension for all constructors: Upgrading from a class to a factory should not break things, but in JavaScript, it does.,ES6 classes desugar to constructor functions, so everything that follows about constructor functions also applies to ES6 classes:

ES6 classes desugar to constructor functions, so everything that follows about constructor functions also applies to ES6 classes:

class Foo {}
console.log(typeof Foo); // function
load more v

The correct answer is that it prints to console:,“JavaScript is finally a real object-oriented language now that it has classes!”,One can implement inheritance in JavaScript ES6 through the "class" and "extends" keywords. Another approach is via the "constructor" function idiom plus the assignment of functions and static properties to the constructor's prototype.,JavaScript doesn’t have any concept of privacy, but it does have closures:

JavaScript Pop Quiz #1: What’s the Essential Difference Between These Code Blocks?

function PrototypicalGreeting(greeting = "Hello", name = "World") {
   this.greeting = greeting = name

PrototypicalGreeting.prototype.greet = function() {
   return `${this.greeting}, ${}!`

const greetProto = new PrototypicalGreeting("Hey", "folks")
load more v

Other "class-difference" queries related to "Javascript: What is the difference between Function and Class"