易错点
请不要应用 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」
后果:
- 留神:因为 你好,我叫 这里的引号,不小心用成了中文的引号,导致始终再报错