当我console.log(obj)时,我想知道左字符串的含义

时间:2019-06-17 07:21:14

标签: javascript function object

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浏览器。

enter image description here

2 个答案:

答案 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