请帮助我弄清楚它,我看到javascript中的每个对象都导致原型链中的对象成为对象,然后返回null,在console.log中,我们可以看到对象的属性和方法,但从未看到其实现,我想知道这个Object是否是存储所有内置对象的顶级对象,对吗?
谢谢大家的回答!
答案 0 :(得分:1)
Javascript是一种基于对象的语言。这意味着“一切”都继承自对象,对象本身除外,原型链的顶部为空。声明数组时,可以使用.lenght
,因为它是在prototype属性中定义的。有一些例外,例如int,float等。
实际上,当您运行控制台时,可以从其父级看到每个方法。尝试为一个新对象创建一个构造函数,例如:
var Person = function(name, yearOfBirth, job) {
this.name = name;
this.yearOfBirth = yearOfBirth;
this.job = job;
}
向此人的原型添加方法:
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中的继承成为可能
答案 1 :(得分:0)
也许您想看看ECMA规范?
http://www.ecma-international.org/publications/standards/Ecma-262.htm
每个浏览器可能都有自己的Javascript实现。也许像这样的回购将有所帮助。