原型和原型链

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),两者功能一致。

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值