zoukankan      html  css  js  c++  java
  • 最近javascript的学习小记

    一、关于javascript的原型与隐式原型

    1.prototype

        首先function是一个对象,每一个function都具有一个prototype对象,prototype对象默认是{constructor:f},一个指向函数本身的对象。
    

    即:

    function a(){} =>undefined
    a.prototype
    =>{constructor:f}
    a.prototype.constructor===>function a(){}

    2.隐式原型

        首先除开function、Object对象外没有对象拥有prototype属性,并且每个对象都有一个隐式原型对象_proto_。该属性是一个隐藏属性,javascript不希望开发者使用该属性。  
    

    即:
    var b=1;=>undefined
    b._proto_
    =>Number {constructor:f Number(),......,_proto-:Object}

        我们可以看到b是一个数字变量,它的构造是由Number()函数创建出来的,最后 b._proto_._proto_ 是Object ,以此可见一切皆是对象
    

    Object.prototype._proto_===>null

        这里我们就可以看到对象的本质其实什么都没.
    

    3.函数的隐式原型

        上面我们定义了a方法,既然是方法对象,那么a应该不光有原型还理应有隐式原型。  
    即:  
    a.prototype===>{constructor:f}    //a的原型
    a._proto_===Object.prototype     //a的隐式原型
    Object.prototype.constructor===>function Object(){}
    

    4.我的理解

    还是面向对象的思想,这里面非常绕。为方便理解,我是这样想的:本质上什么都没有!程序员写了Object代码(最最最基础的代码)可以创建Object对象(包含非常基础简单的功能),在Object代码的基础上,再加些其它代码提升功能就变成了其它的方法代码。当实例化这些代码为对象时,代码中Object的代码部分也会被实例化到内存中。这应该就是继承了!
    

  • 相关阅读:
    [转] 使用Git进行小项目代码管理
    [转] Linux抓包工具tcpdump详解
    几天都是气温骤降,感冒了还没有收获
    1128进入自学实习培训路
    hdu 4952
    hdu 4937 2014 Multi-University Training Contest 7 1003
    hdu 4941 2014 Multi-University Training Contest 7 1007
    hdu 4939 2014 Multi-University Training Contest 7 1005
    hdu 4932 BestCoder Round #4 1002
    POJ 2362
  • 原文地址:https://www.cnblogs.com/Renzhendew0/p/10313832.html
Copyright © 2011-2022 走看看