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;

  • 相关阅读:
    常见RGB透明度对照表在这
    Android节假日图标动态替换方案
    用两个栈实现队列
    从头到尾打印链表 (链表/栈)
    MySQL常用函数
    找出数组中重复的数字
    两数之和
    java的list的几种排序写法整理(sort的用法)
    Java知识目录
    通过关键词来推荐话题
  • 原文地址:https://www.cnblogs.com/sunmarvell/p/8660576.html
Copyright © 2011-2022 走看看