为什么'new'关键字不会更改控制台中显示的构造函数

时间:2019-05-21 15:32:44

标签: javascript

当不使用'new'关键字时,在控制台中登录的构造函数将显示该对象的构造函数,并且当我更改对象的__proto__时它也会更改,控制台也会显示当前对象的构造函数对象的构造函数是。但是,即使使用'new'关键字,即使我更改了__proto__,控制台仍会显示创建该对象的原始构造函数的构造函数。

没有“新”关键字照片 Without 'new' keyword photo

带有“新”关键字照片

With 'new' keyword photo

控制台显示对象的当前构造函数是什么,并且当我更改其__proto__

时,它也会改变
function Human(){}
function Animal(){}
const obj = Object.create(Human.prototype)
console.log(obj)
Object.setPrototypeOf(obj, Animal.prototype)
console.log(obj)

但是当使用new关键字时,即使更改了对象的__proto__,它仍然会显示创建该对象的原始构造函数。

function Human(){}
function Animal(){}
const obj = new Human()
console.log(obj)
Object.setPrototypeOf(obj, Animal.prototype)
console.log(obj)

0 个答案:

没有答案