易错点

请不要应用 class,写一个 Person 构造函数,要求以下代码运行通过:

function Person(name,age){    this.name = name;    this.age = age;}Person.prototype.sayHi=function(){ console.log( "你好,我叫" + this.name);}let person = new Person('frank', 18)person.name === 'frank' // trueperson.age === 18       // trueperson.sayHi()          // 打印出「你好,我叫 frank」let person2 = new Person('jack', 19)person2.name === 'jack' // trueperson2.age === 19      // trueperson2.sayHi()         // 打印出「你好,我叫 jack」

后果:

  • 留神:Person.prototype.sayHi = function(){}中的sayHi中的h忘了大写,还有漏掉了function(),间接写sayHi(),导致始终再报错!

请用 class 再实现一次下面的性能

class Person{ constructor(name, age){ this.name = name; this.age = age; } sayHi(){ console.log( "你好,我叫" + this.name ); }}  let person = new Person( ' frank ' , 18)  person.name ==='frank' // trueperson.age === 18 //trueperson.sayHi() //打印出「你好,我叫 frank」let person2 = new Person('jack', 19)  person2.name === 'jack' // trueperson2.age === 19 // trueperson2.sayHi() // 打印出「你好,我叫 jack」

后果:

  • 留神:因为 你好,我叫 这里的引号,不小心用成了中文的引号,导致始终再报错