javascript - javascript中的内置方法在哪里?
问题描述
请帮我弄清楚,我看到javascript中的每个对象都导致原型链中的对象对象,然后是null,在console.log中我们可以看到对象的属性和方法,但看不到它的实现,我想知道这个对象是否是顶级的存储所有内置对象的级别对象,是这样吗?
谢谢大家的回答!
解决方案
Javascript 是一种基于对象的语言。这意味着“一切”都继承自 Object,除了 Object 本身,原型链的顶部是 null。当您声明一个数组时,您可以使用.lenght
它,因为它是在原型属性中定义的。也有一些例外,例如 int、floats 等。
事实上,当你运行一个控制台时,你可以从它的父母那里看到每一个方法。尝试为新对象创建一个构造函数,例如:
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 父级的 proto,或者换句话说,是 Object。
Object
在那里你可以从它本身中找到大部分方法。
原型使 JavaScript 中的继承成为可能
推荐阅读
- xamarin.forms - c# - 如何从 FTP 设置图像的图像源
- c# - 对没有身份的经典 asp 和有身份的 asp.net 核心使用相同的数据库
- java - 在 ARM 上使用 BlueCove-DBus。Linux 上 C 库和 Java 代码 (JNI) 之间的链接器错误
- hadoop - map reducer 中的单个 reducer 是否需要 Partitioner?
- arrays - 使用 Actionscript 3 的字节数组
- python - spyder 没有正确运行 kivy 脚本,但 IDLE 可以
- redash - Redash:从其他实例导入查询
- java - 是否有任何 java 插件可以自动使用 getter setter(如果提供)而不是 object.field?
- python - 使用python和通配符在目录中查找文件
- r - 在 R 中绘制宾夕法尼亚县的热图