请帮助我弄清楚它,我看到javascript中的每个对象都导致原型链中的对象对象变为null,在console.log中我们可以看到对象的属性和方法,但从未看到其实现,我想知道此对象是否是顶级存储所有内置对象的对象,是这样吗?

谢谢大家的回答!

最佳答案

Javascript是一种基于对象的语言。这意味着“一切”都继承自对象,对象本身除外,原型链的顶部为空。声明数组时,可以使用.lenght,因为它是在prototype属性中定义的。有一些例外,例如int,float等。

实际上,当您运行控制台时,您可以从其父级看到每种方法。尝试为一个新对象创建一个构造函数,例如:

var Person = function(name, yearOfBirth, job) {
    this.name = name;
    this.yearOfBirth = yearOfBirth;
    this.job = job;
}


在此Person的原型中添加一个方法:

Person.prototype.calculateAge  = function() {
    console.log(2016 - this.yearOfBirth);
};


并创建此新“类”的实例:

var sarah = new Person('Sarah', 1994, 'programmer');


现在转到浏览器上的控制台,然后键入sarah以查看其方法和变量。您会注意到,John专有的变量将出现在第一个下拉列表中,但是您还会注意到,John没有直接附加calculateAge。那是因为它在其原型中,搜索名为_proto_的东西,您将看到此方法以及一个构造,然后猜测还有什么?另一个_proto_,这是来自Person的父代的原型,换句话说,就是Object。

在这里,您可以从Object本身找到大多数方法。

原型是什么使javascript中的继承成为可能

10-05 20:29
查看更多