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;

  • 相关阅读:
    jQuery过滤器 过滤器
    查询总结
    ado.net
    禅修程序员十诫
    Asp.net中Bind()和Eval()的区别
    什么是好代码?
    12 个有效的提高编程技能的方法
    Visual Studio各种版本之间的转换工具
    程序员的培养
    session和cookie的区别和联系!
  • 原文地址:https://www.cnblogs.com/sunmarvell/p/8660576.html
Copyright © 2011-2022 走看看