JavaScript类的方法编写与面向对象编程实践

类的方法的写法,其实在前端开发里蛮常见的。像你写一个People类,要给它加上可以动态修改名字的方法,那就得往它的原型或者构造函数里塞点内容。不过原始内容那个tthis拼错了哈,写成this才对。还有,函数里用了name但没定义,调试的时候容易翻车。

类的方法本质上就是封装好的操作,让你可以对对象做点事情,比如改值、触发动作之类的。像下面这个写法,就比较直白:

function People(name) {
  this.name = name;
  this.setName = function(name) {
    this.name = name;
  }
}

不过更推荐你用原型写法,省内存:

function People(name) {
  this.name = name;
}
People.prototype.setName = function(name) {
  this.name = name;
}

如果你更喜欢现代点的写法,ES6 的 class用起来也挺顺手:

class People {
  constructor(name) {
    this.name = name;
  }
  setName(name) {
    this.name = name;
  }
}

你看,方法加到类里,结构清晰,调用也直观。像这样:

const p = new People('小明');
p.setName('小红');

顺便附几个相关的资源,扩展下思路:

如果你刚好在整理老代码或者打算换成class写法,这几个资源可以帮你理清楚结构,少踩坑。

ppt 文件大小:892.5KB