Custom Prototype trong Javascript [JAVASCRIPT]


Bài viết trước ta có constructor như sau :

function Person(name, email) {
  this.name = name;
  this.email = email;
}
Person.prototype.pay = "Check";

Person.prototype.run = function(){
  console.log('running');
}
// instance
var object1 = new Person("Mr D", "example1@tuts.net");
console.log(object1);

// {
// name:"Mr D",
// email: "example1@tuts.net"
// <prototype>: {
//   constructor: Person {..}
//   pay: "Check"
//   run: function run()
//   prototype: Object {}
// }
//
// }

Ta thấy mỗi 1 instance được tạo ra sẽ có 1 prototype, nó sẽ kế thừa các thuộc tính và phương thức của prototype. Nếu thuộc tính hoặc phương thức nào không có thì nó sẽ kế thừa từ prototype Object. Prototype của Object là cao nhất.

Ta tạo constructor function tên là "ITPerson" sẽ kế thừa các thuộc tính và phương thức từ prototype của "Person". Đầu tiên ta tạo constructor "ITPerson".

function ITPerson(job, salary) {
  this.job = job;
  this.salary = salary;
}
ITPerson.prototype = Object.create(Person.prototype);

ITPerson.prototype.lang = function() {
  return "Javascript";
};
console.log(ITPerson.prototype);

var object3 = new ITPerson("IT", "50000");
console.log(object3);