构造函数与类(class)

2020-01-07  本文已影响0人  Fanny

类其实就是构造函数的语法糖 ,

  function Person(name, age) {
    this.name = name;
    this.age = age;
  }
  //添加在原型上的方法
  Person.prototype.say = function() {
    return "我的名字叫" + this.name + "今年" + this.age + "岁了";
  };
  //创造实例
  var obj = new Person(小白", 88); /
  console.log(obj.say()); 
  obj.hi = function(){
    return this.age
  }
  console.log(obj);
构造函数.png

构造函数有一个prototype属性指向自身的原型对象, 构造函数的实例有一个proto( 双下划线)属性指向自己构造函数的原型 (原型中有constructor属性指向原型对象的构造函数).
通过实例对象和this关键字调用的属性和方法是实例属性和方法,

  console.log(Person.prototype === obj.__proto__);
  console.log(obj.__proto__.constructor);
构造函数.png
 class Person1 {
    constructor(name,age){
      this.name = name;
      this.age = age;
    }
    //这是一个类的方法,不可以加上function
    say(){
      return '我的名字叫做'+ this.name + '今年' + this.age;
    }
  }

  let obj1= new Person1('lili',12);
  console.log(obj1.say());
  
  obj1.aa = 'nihao'
  obj1.bb = function(){
    return this.aa
  }
  
  console.log(obj1);
类.png

关于this关键字的作用 , 以及原型链的内容在这里只是略微的提过,想了解具体的内容可以---

上一篇 下一篇

猜你喜欢

热点阅读