个人主页:《爱蹦跶的大A阿》
当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》
在JavaScript中,除了自定义对象,还存在很多由JavaScript语言本身提供的原生对象。这些原生对象同样基于原型继承机制,拥有自己的原型。
理解原生对象的原型非常重要,可以让我们正确使用这些内置对象,也有助于进一步理解JavaScript的原型继承系统。
本文将详细解析原生对象的原型结构,揭开一些常见原生对象原型的神秘面纱。
Object是所有对象的父对象,其原型就是原型链的终点:
Object.prototype.__proto__ === null; // true
Object原型上定义了所有对象共享的方法,比如toString、valueOf等。
Function是所有函数的构造函数,其原型链是:
Function.prototype -> Object.prototype -> null
Function原型上定义了apply、call、bind等方法。
数组对象Array的原型链是:
Array.prototype -> Object.prototype -> null
Array原型上定义了所有数组共享的方法,比如push、pop等。
正则表达式对象RegExp的原型链是:
RegExp.prototype -> Object.prototype -> null
RegExp原型上定义了正则对象的matcher等方法。
一些内置函数如decodeURI、isNaN等它们的原型是:
decodeURI.prototype -> Function.prototype -> Object.prototype -> null
普通对象使用Object构造函数创建,其原型链是:
{}.__proto__ -> Object.prototype -> null
学习原生对象的原型关系,有助于我们在日常开发中正确理解和使用这些JavaScript内置对象,避免一些常见陷阱。
原生对象的原型也是JavaScript作为一门原型继承语言的重要组成部分。充分理解原型系统是掌握JavaScript语言的关键。