JavaScript中的继承

2019-02-28  本文已影响0人  2分_08b6

一.继承基础知识

prototype和proto之间的区别

  1. 每一个js对象都有proto对象(值就是它所对应的原型对象, 因此可以将proto对象称作原型对象), 并从原型对象继承属性和方法
  2. 只有函数才会有prototype对象,且使用new声明对象, 对象实例的proto(原型对象)对应于函数的prototype对象,并以此实现继承
    例如:
// one 是对象字面量,es规定继承自Object
var one = {x: 1};
// two明确是Object的实例
var two = new Object();
console.log(one.__proto__ === Object.prototype);          // true
console.log(two.__proto__ === Object.prototype);          // true
console.log(one.toString === one.__proto__.toString);   // true
console.log('one.prototype', one.prototype);                    // undefined

二.继承体系

js继承体系.jpg

验证如下:
验证Function.prototype继承Object.prototype

Function.prototype.__proto__ === Object.prototype  // true

验证Object, Function, Array, String, Number, Boolean继承Function.prototype

Object.__proto__ === Function.prototype;        // true
Function.__proto__ === Function.prototype;    // true
Array.__proto__ === Function.prototype;          // true
String.__proto__ === Function.prototype;        // true
Number.__proto__ === Function.prototype;     // true
Boolean.__proto__ === Function.prototype;    // true
上一篇 下一篇

猜你喜欢

热点阅读