zoukankan      html  css  js  c++  java
  • Javascript基本概念梳理

    javascript里的数据类型:

    原始类型:数字,字符串。布尔值。(原始值:null,undefined)

    对象类型:键值对,数组,function,全局对象(MATH,JSON)

    保留字:

    abstract
    boolean
    byte
    char
    class
    const
    debugger
    double
    enum
    export
    extends
    final
    float
    goto
    implements
    import
    int
    interface
    long
    native
    package
    private
    protected
    public
    short
    static
    super
    synchronized
    throws
    transient
    volatile


    包装对象的概念:

    字符串"aaa".len 字符串并非对象。可是却能够调用它的属性。说明这仅仅是一个暂时对象。内部用new String()来创建的暂时的。


    原始类型是永远不可变的,所以能够比較他们的值。可是对象类型是可变的。不能比較他们的值.

    Javascript原型和继承:

    Javascript里每一个对象都和另外一个对象关联,这个对象就是__proto__(原型对象)注意这里的原型对象并非prototype。

    解释一下:这里的prototype指的是通过keywordnew和构造函数调用创建的对象的原型就是构造函数的prototype属性。

    对象实例的__proto__指向这个对象的prototype。而对象的__proto__为空。

    举个样例就是:

    var array = new Array();
    array.__proto__ === Array.prororype  //true
    Array.__proro //null

    当然。也能够使用Object.getPrototypeOf()替代__proto__来使用来得到对象所继承的原型。举例说明:

    Object.getPrototypeOf(Array) === Array.__proto__;
    
    

    Object.getPrototypeOf()来查看原型继承,比如:

    Object.getPrototypeOf(Array.prototype) // Object  

    能够看出Array的prototype继承Object所以Array也有他的方法比如totring()等。

    能够得到全部的对象都有一个共同的原型。就是Object可是Object仅仅是一个构造函数,想要訪问他,就仅仅用Object..prototype来得到。


    比如。Object..getPrototypeOf()来查看自己定义的继承

    function A(){};
    function B(){};
    A.prototype = new B();
    Object.getPrototypeOf(A.prototype) //B

    使用Object.create()实现继承:

    Object.create()接受一个參数,为对象的prototype。事实上还有第二个參数用来描写叙述熟悉的特性,源代码是基于new ()从而赋值他的prototype来实现的

    Object.create = function (o) {
    
             var F = function () {};
    
             F.prototype = o;
    
             return new F();
    
         };
    
    var b=Object.create(a);


    Object.create()能够创建对象。当然也能够创建对象的子对象,能够这样理解

    var a = Object.create({a:1})

    那么a就有了一个熟悉a,这样就能够理解为继承了。假设是一个函数。比如Array是一个函数对象

    var myArray = Object.create(Array.prototype)

    那个myArray也就具有了Array的全部方法

    myArray.push

    自己定义的函数

    function Acc(){}
    Acc.prototype.dd = 123;
    var accc = Object.create(Acc.prototype)。
    accc.dd //123

    未完!


  • 相关阅读:
    初学者--bootstrap(六)组件中的字体图标----在路上(9)
    clearfix的最佳方案----在路上(22)
    css的五种属性值----在路上(21)
    float---浮动带来的影响与清除浮动带来的影响方法----在路上(20)
    form表单 ----在路上(15)
    css中常见的属性-----在路上(14)
    Linux | 管道、重定向命令
    C++ | from_string函数的写法
    C++/C | 关于char* char[] char = new char[n]
    C++内存管理 | 01 C++ memory primitives
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6893219.html
Copyright © 2011-2022 走看看