js原型链的领悟

1 String Number Object Boolean Array Function的原型执行的对应于其构造器创建的对象

String.prototype 指向 new String() 但String.proptotype.__prototype__指向Object.prototype   //Object.prototype.__prototype === null ; String.prototype instanceof Object === true

Object.prototype 指向 new Object() //同上

Boolean.prototype指向 new Boolean() //同上

Number、Array、Function //同上

 

//所有的对象都继承自原始对象
    //Object比较特殊,他的原型对象也就是原始对象
    //所以我们往往用Object.prototype表示原始对象
    Object.__prototype__ === Function.prototype
    Object.prototype === o.__proto__;//true
    Object.prototype === Object.__proto__.__proto__;//true
    Object.prototype === Function.__proto__.__proto__;//true

2 new Object()和Object()、相同 Function() 和 new Function() 相同; Number 和 new Number() 不同,String() 和 new String(); Boolean() new Boolean()

typeof Object() === typeof new Object() === 'object'

typeof Function() === typeof new Function() === 'function'

typeof Number() === 'number' === typeof 1而 typeof new Number() === 'object'

typeof String() === 'string' === typeof 'str' 而 typeof new String() === 'object'

typeof Boolean() === 'boolean' === typeof false 而 typeof new Boolean() === 'object'

3 Number.__prototype === Object.__prototype === Function.__prototype__ === Function.prototype //因为所有函数是Function的实例

Function.prototype 是Object的实例

Number.prototype是Object的实例

String.prototype是Object的实例

4 严格模式下

function fx1() {

    'use strict';

     console.log(this.constructor); //报错 this === udefined

}

fx1();

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值