-
原型和原型链
1.箭头函数没有this,所以无法通过call去改变this,只会去外层找this。
2.箭头函数没有prototype,有_proto_。
3.箭头函数无法作为构造函数。除构造函数外其它函数都可以作为构造函数。
4.作为构造函数的函数,如果有返回值,且返回值为对象,那么在new的时候得到的结果就是这个对象,如果返回值不为对象,则创建对象。
5.javaScript的继承是基于原型,java的继承是经典继承模型。
6.===只会比较值和类型并不会比较地址值,似ta非ta。
7.原型链就是继承关系,作用就是可以从后往前层层查找,找到就截止(属性遮蔽),找到头就截止。
8.var o = {a: 1};// o —> Object.prototype —> null
9.var a = [“yo”, “whadup”, “?”];// a —> Array.prototype —> Object.prototype —> null
10.function f(){ return 2; }// f —> Function.prototype —> Object.prototype —> null
11.var a = {a: 1}; // a —> Object.prototype —> null
12.var b = Object.create(a); // b —> a —> Object.prototype —> null console.log(b.a); // 1 (继承而来)
13.var c = Object.create(b); // c —> b —> a —> Object.prototype —> null
14.var d = Object.create(null); // d —> null console.log(d.hasOwnProperty); // undefined,因为 d 没有继承 Object.prototype
15.在原型链上查找属性比较耗时,对性能有副作用,这在性能要求苛刻的情况下很重要。另外,试图访问不存在的属性时会遍历整个原型链。
16.hasOwnProperty (en-US) 是 JavaScript 中唯一一个处理属性并且不会遍历原型链的方法。(译者注:原文如此。另一种这样的方法:Object.keys())
17.简而言之, prototype 是用于类的,而 Object.getPrototypeOf() 是用于实例的(instances),两者功能一致。


-
相关阅读:
【数据分享】上海市共享单车数据
【浅学Java】SpringBoot创建和使用
Java数组的定义与使用
【Go语言】Gin 框架教程
【vue 组件化开发 一 】组件基本使用、全局和局部组件、父组件和子组件的区别
【自学开发之旅】Flask-回顾--对象拆分-蓝图(二)
手写SDK的秘诀
C++保姆级入门教程(10)—— 一维数组练习
从电大搜题到上海开放大学,广播电视大学引领学习新风尚
【JavaSE】继承那些事儿
-
原文地址:https://blog.csdn.net/weixin_45731789/article/details/127552729