Когда я console.log (obj), я хочу знать значение левой строки - PullRequest
0 голосов
/ 17 июня 2019
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 голосов
/ 17 июня 2019

obj является экземпляром конструктора ColoredTriangle.Таким образом, obj.constructor будет функциональным объектом, который ColoredTriangle..name получит название этой функции.

Согласно MDN о Function.prototype.name

Свойство name только для чтения: имя функции указывает имя функции, указанное при ее создании, или «anonymous»."для функций, созданных анонимно

См. пример ниже.

Примечание: Свойство name относится только к объектам функций.Я не буду работать с другими типами данных.

function foo(){}
let instance = new foo();
console.log(instance.constructor); //function foo(){}
console.log(foo.name) //foo
0 голосов
/ 17 июня 2019

Здесь, var obj = new ColoredTriangle();, используя это, вы создаете новый объект функции ColoredTriangle().

Следовательно, в результатах вашей консоли ColoredTriangle {color: "red"} показывает содержимое obj, которое вы печатаете. Вы можете видеть это также показывает свойства функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...