原型对象

88 阅读1分钟

实际操作中,我们可能会遇到管理员和用户都有注册和登录的权限,但是管理员又有删除用户的权限

image.png

类与继承(es6)

我们创建两个类属性User和Admin,让Admin有自己的方法(删除操作deletePerson)的同时,继承User中的登录方法

   class User {
        constructor(username, password) {
          this.username = username
          this.password = password
        }
        login() {
          console.log('登陆操作')
        }
      }
      class Admin extends User {
        //定义删除操作
        deletePerson() {
          console.log('删除一个人')
        }
      }
      let admin = new Admin()
      admin.deletePerson()

基于原型的继承(es5)

我们创建两个方法User和Admin,使Admin可以使用User中的login方法,当Admin.prototype成为User的实例时,就可以使用User中的方法了,即Admin.prototype=new User()

image.png

 function User(username, password) {
        this.username = username
        this.password = password
        this.login = function () {
          console.log('登陆操作')
        }
      }

  function Admin() {
        this.deletePerson = function () {
          console.log('删除一个人')
        }
      }
 Admin.prototype = new User()
      let admin = new Admin()
      admin.login()