1.题目:
function A() {}
function B() {}
function createObject() {
var random = Math.random();
if (random > 0.5) {
return new A();
} else {
return new B();
}
}
var obj = createObject();
问题:输出创建该对象的函数名?
答案:
console.log(obj.__proto__.constructor.name);
分析:
(1)对象的隐式原型一定指创建该对象的函数的原型
(2)原型上面的constructor属性指向函数本身
(3)Object函数 —prototype— ->(指向) Object的原型 —constructor— ->(指向) Object函数本身。