我一直在学习 Javascript 的原型继承,并且在 html 页面的正文中的标签中包含以下内容:
function F() {}
//F.prototype = {a:"hello"};
var x = new F();
document.write(x.constructor);
这会在浏览器中产生以下打印输出:
函数 F() { }
但是,如果我取消注释第二行,则会出现以下结果:
函数 Object() { [本机代码] }
尽管如此,x
仍然继承自 F 的原型,因为当我将最后一行更改为以下内容时......
document.write(x.a);
...我得到以下打印输出:
你好
我已经在 Firefox 和 Safari 中尝试过,两者都发生了同样的事情。
有谁知道这里到底发生了什么?