zoukankan      html  css  js  c++  java
  • 原型和原型链

    构造函数:大写字母开头;

    var a={};
    var a=new Object();
    var a=[];
    var a=new Array();
    function Foo(){};
    var Foo=new Function (){}

    使用instanceof判断一个函数是不是一个变量的构造函数

    f instanceof Foo ; f instanceof Object    (true);

          eg:判断一个变量是不是数组: instanceof Array;

    for in

        

     var item
    for(item in f) {
         //高级浏览器已经在for in中屏蔽了原型属性
        //但是还是加上下面的判断,保证程序的健壮性
        if(f.hasOwnProperty(item))
            {}
     }

    所有的引用类型

             都具有对象的特性,即可自由扩展属性,(null除外);

             都有一个_proto_(隐式原型)属性,属性值是一个普通的对象;

            _proto_(隐式原型)属性值指向他的构造函数的prototype(显式原型)属性值;(===)

    所有的函数

           ①都有一个prototype(显式原型)属性,属性值是一个普通的对象;

           ②当试图得到一个对象的某个属性时,如果这个对象本身没有这个属性,

                 那么会去他的  _proto_(即他的构造函数的prototype)中查找;         

                   f._proto_==Foo.prototype

           ③ 当试图得到一个对象的某个属性时,如果这个对象本身没有这个属性,

                  且他的  _proto_(即他的构造函数的prototype)也没有这个属性 ,

                  那么会去他的  _proto_的_proto_中查找(即他的构造函数的构造函数的prototype)(即f._proto_._proto_);                    

                   f._proto_. _proto_==Foo.prototype._proto_==Object.prototype;

                  注意:Object._proto_==null;

  • 相关阅读:
    Cannot get a NUMERIC value from a STRING cell? 已解决
    Android Studio快捷键大全
    mysql索引
    eclipse中出现错误 Syntax error, insert "}" to complete Block
    function
    IGS OPC UA 配置
    IFIX 5.9 历史数据 曲线 (非SQL模式)
    IFIX 5.9 报警存sql
    IFIX 数据源 节点 标签 域名
    IFIX 目录结构
  • 原文地址:https://www.cnblogs.com/sunmarvell/p/8660576.html
Copyright © 2011-2022 走看看