4.原型、原型链、构造函数.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. // 单行注释
  2. /**
  3. * 多行注释
  4. */
  5. /**
  6. * 属性 写在构造函数下
  7. * 方法 写在原型对象下
  8. */
  9. /**原型链:
  10. * 当访问一个对象的属性时 先去对象的自身属性去找 找不到
  11. * 会通过_proto_(每个实例化对象自带的一个属性(隐性的))去构造函数上找
  12. * 如果未找到 在Object对象上找 还未找到 返回 undefined
  13. */
  14. // 函数 构造函数
  15. function person(name,age) {
  16. this.name = name;
  17. this.age = age;
  18. console.log(this.name,this.age)
  19. /**
  20. * 每一个构造函数(constructor) 都有一个prototype属性
  21. * prototype(显性的)属性 指向原型对象
  22. */
  23. // 原型对象:定义在原型对象下的属性和方法 能被实例化对象所共享了
  24. person.prototype.eat = function() {
  25. console.log(this.name,'属性')
  26. }
  27. }
  28. // var a = new Object()
  29. // new 实例化对象
  30. // 相当于创建了一个新的对象
  31. var person1 = new person('LiLi',100);
  32. var news1 = new person('喔喔',25);
  33. person1.eat();
  34. news1.eat();