请帮助我弄清楚它,我看到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中的继承成为可能