Javascript中的构造函数属性是什么?

What is constructor property in Javascript?

本文关键字:是什么 属性 构造函数 Javascript      更新时间:2023-09-26

在下面的代码中,为Cat提供构造函数的好处是什么?

function Mammal(){
}
Mammal.prototype.breathe = function(){
    // do some breathing
};
function Cat(){
}
Cat.prototype = new Mammal();
Cat.prototype.constructor = Cat;
var garfield = new Cat();
console.log(garfield instanceof Cat);

不管有没有构造函数,它总是打印true,作为检查instanceof的结果。

一般来说,我们需要设置构造函数吗?

在以前的ECMAScript版本中,instanceof使用对象原型链中的构造函数。然而,在ES6中,有一个Symbol来确定一个对象是否是instanceof - a构造函数,这是更可靠的,因为它需要非常谨慎的努力来处理该Symbol。

然而,对象的构造函数在某些情况下是有用的,当你想要创建另一个相同类型的对象时,例如,为了正确地克隆一个实例:

function clone(o) {
    var newO = new o.constructor()
    // copy properties
    return newO
}