var triangle = { a: 1, b: 2, c: 3 };
function ColoredTriangle() {
this.color = 'red';
}
ColoredTriangle.prototype = triangle;
var obj = new ColoredTriangle();
console.log(obj.constructor.name, obj);
//result: Object ColoredTriangle {color: "red"}
我使用Chrome浏览器。
答案 0 :(得分:0)
在这里,var obj = new ColoredTriangle();
使用它来创建功能为ColoredTriangle()
的新对象。
因此,在控制台结果中,ColoredTriangle {color: "red"}
显示了要打印的obj
的内容。您可以看到它还显示了函数属性。
答案 1 :(得分:0)
obj
是构造函数ColoredTriangle
的实例。因此,obj.constructor
将是ColoredTriangle
的函数对象。 .name
将获得该函数的名称。
根据MDN关于Function.prototype.name
Function对象的只读名称属性表示创建时指定的功能名称,对于匿名创建的功能,其名称为“匿名”
请参见下面的示例。
注意:name
属性仅适用于功能对象。我将无法使用其他数据类型。
function foo(){}
let instance = new foo();
console.log(instance.constructor); //function foo(){}
console.log(foo.name) //foo