Javascript 空对象原型未定义

Javascript 空对象原型未定义,javascript,Javascript,我是JavaScript新手,如果所有对象都从原型继承了它们的属性,并且如果默认对象是object,那么为什么下面的脚本在这两种情况下都返回undefined(我期望的是object) obj1 = {}; //empty object obj2 = new Object(); console.log(obj1.prototype); console.log(obj2.prototype); 如果这是个愚蠢的问题,请原谅 。prototype不是活动对象的属性,因此它不存在,因此报告未定义。.

我是JavaScript新手,如果所有对象都从原型继承了它们的属性,并且如果默认对象是object,那么为什么下面的脚本在这两种情况下都返回undefined(我期望的是object)

obj1 = {}; //empty object
obj2 = new Object();
console.log(obj1.prototype);
console.log(obj2.prototype);
如果这是个愚蠢的问题,请原谅

。prototype不是活动对象的属性,因此它不存在,因此报告未定义。.prototype属性位于构造函数上,在本例中为Object.prototype。对于现代浏览器中的给定对象,可以通过以下方式获取活动原型:

var obj1 = {}; 
var p = Object.getPrototypeOf(obj1);
获取原型的一种非标准且现已弃用的方法是:

var obj1 = {}; 
var p = obj1.__proto__;
.prototype不是活动对象的属性,因此它不存在,因此报告未定义。.prototype属性位于构造函数上,在本例中为Object.prototype。对于现代浏览器中的给定对象,可以通过以下方式获取活动原型:

var obj1 = {}; 
var p = Object.getPrototypeOf(obj1);
获取原型的一种非标准且现已弃用的方法是:

var obj1 = {}; 
var p = obj1.__proto__;

在JavaScript的原型继承中,有构造函数和实例。 构造函数(如Object)是找到.prototype链的地方。
但是在实例上,原型链实际上是不可访问的。

在JavaScript的原型继承中,有构造函数和实例。 构造函数(如Object)是找到.prototype链的地方。
但在实例上,原型链并不是真正可访问的。

没有完全意义,因为我仍在努力解决JavaScript的复杂性。不过,我会接受这个答案。谢谢还有obj.constructor.prototype,但它不可靠。没有完全意义,因为我仍在努力解决JavaScript的复杂性。不过,我会接受这个答案。谢谢还有obj.constructor.prototype,但它不可靠。也许下面的答案可以帮助您:正如答案所示;prototype是函数实例的属性,用作使用该函数创建的实例原型链中的第一项。var c=新对象;名为c的对象实例将使用Object.prototype作为其原型链中的第一项。但由于c不是函数的实例,所以它没有原型成员。如果您使用var q=new函数,那么q将有一个原型member@HMR是的,这增加了清晰度。我还远没有完全理解,但每一点都有帮助。^^对象通过其内部[[Prototype]]继承,这是对其实例化时构造函数原型的引用;prototype是函数实例的属性,用作使用该函数创建的实例原型链中的第一项。var c=新对象;名为c的对象实例将使用Object.prototype作为其原型链中的第一项。但由于c不是函数的实例,所以它没有原型成员。如果您使用var q=new函数,那么q将有一个原型member@HMR是的,这增加了清晰度。我还远没有完全理解,但每一点都有帮助。^^对象通过其内部[[Prototype]]继承,该内部[[Prototype]]是对其实例化时构造函数原型的引用。谢谢!这很有帮助@谢谢,我删除了关于_proto_________________________________!这很有帮助@RobG谢谢,我删除了关于_proto________________属性的评论。