When an object/array/ function is created, the javascript engine adds access to hidden properties and method under _ _ proto _ _ object.
function b (){
console.log("function");
};
let a = {
id : 1,
name : "jack",
showScore: function (){
console.log(this.id + " :" + this.name);
}
}
a._ _ proto _ _
Object.prototype
a._ _ proto _ _ . _ _ proto _ _
null
b. _ _ proto _ _
Function.prototype
b. _ _ proto _ _ . _ _ proto _ _
Object.prototype
b. _ _ proto _ _ . _ _ proto _ _ . _ _ proto _ _
null
Hence we can say everything in javascript is an object.
let a = {
name: "mavy",
age: 16,
place: "AU"
showName: function (){
console.log(this.name);
};
};
let b = {
name: "redis"
};
b. _ _ proto _ _ = a
// Avoid such code
b.name
"redis"
b.age
16
b.showName()
"redis"
Here b is inheriting from a using prototyping inheritance.
We can implement new logic to existing methods of prototype and everytime it will be called it will load that function.
Function.prototype.test = function (){ console.log(true); }
function a() {};
a.test()
true
Like this, all functions can now have access to the function through prototype.test property.
Top comments (0)