How to Implement the instanceof in Javascript?
- Time:2020-09-17 14:37:27
- Class:Weblog
- Read:31

NodeJs / Javascript
In Javascript, the operator instanceof is used to perform a test to check if the prototype property of a constructor apperas in the chain of the object’s prototype chain.
The syntax to use is:
1 2 3 | object instanceof constructor // object - the object to test // constructor - to test against |
object instanceof constructor // object - the object to test // constructor - to test against
For example:
1 2 3 4 5 6 7 8 9 10 | function Car() {} function Train() {} const car = new Car(); const train = new Train(); console.log(car instanceof Car); // true console.log(car instanceof Train); // false console.log(train instanceof Car); // false; console.log(train instanceof Train); // true; |
function Car() {} function Train() {} const car = new Car(); const train = new Train(); console.log(car instanceof Car); // true console.log(car instanceof Train); // false console.log(train instanceof Car); // false; console.log(train instanceof Train); // true;
We can implement a instanceOf function in pure Javascript that does the same instanceof check – probably useful in front-end Javascript interview:
1 2 3 4 5 6 7 8 9 | function instanceOf(left, right) { let proto = left.__proto__; let prototype = right.prototype; for (;;) { if (proto === null) return false; if (proto === prototype) return true; proto = proto.__proto__; // trace way up along the chain } } |
function instanceOf(left, right) { let proto = left.__proto__; let prototype = right.prototype; for (;;) { if (proto === null) return false; if (proto === prototype) return true; proto = proto.__proto__; // trace way up along the chain } }
And it expects to produce the same results:
1 2 3 4 | console.log(instanceOf(car, Car)); // true console.log(instanceOf(car, Train)); // false console.log(instanceOf(train, Car)); // false; console.log(instanceOf(train, Train)); // true; |
console.log(instanceOf(car, Car)); // true console.log(instanceOf(car, Train)); // false console.log(instanceOf(train, Car)); // false; console.log(instanceOf(train, Train)); // true;
The idea is conduct a loop, and trace up the prototype property along the chain until we have a match (equal prototype in the chain) or we have reached the end of the chain – which is null.
–EOF (The Ultimate Computing & Technology Blog) —
Recommend:So You Want To Be A Blogger?
How You Can Earn More With Bitcoins On Your Blog
Explore New Ways of Online Publishing With Mobirise
Is Working from Home as a Blogger a Good Fit?
Why You Should Handwrite Your Blog Post First
The Good Old Days – 5 Ways To Use Nostalgia Marketing In Ecommer
7 Top Tools to Build Your Blog and Brand Like A Pro
Top Reasons to Start a Blog During Lockdown
3 Tips for Handling a National Crisis – From a Blogging Perspect
6 Best WordPress Plugins for eLearning & Tutorial Websites
- Comment list
-
- Comment add