面试题017-43道js题撸题篇12

61 阅读1分钟

前两年很火的43道js面试题,一天一道,啃一遍

第十二题

function Person(firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}

const lydia = new Person("Lydia", "Hallie");
const sarah = Person("Sarah", "Smith");

console.log(lydia);
console.log(sarah);

Person {firstName: "Lydia", lastName: "Hallie"} and undefined

对于sarah,我们没有使用new关键字。 使用new时,它指的是我们创建的新空对象。 但是,如果你不添加new它指的是全局对象!

我们指定了this.firstName等于'Sarahthis.lastName等于Smith。 我们实际做的是定义global.firstName ='Sarah'global.lastName ='Smithsarah本身的返回值是undefined