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;

  • 相关阅读:
    如何安装mysql
    07 登录接口开发
    06 跨域问题
    05 实体校验
    04 异常处理
    03 整合shiro+jwt 会话共享
    02 统一结果封装
    01 新建SpringBoot项目 整合Mybatis Plus(Spring Boot 前后端分离)
    结合Scikit-learn介绍几种常用的特征选择方法
    Set_ML
  • 原文地址:https://www.cnblogs.com/sunmarvell/p/8660576.html
Copyright © 2011-2022 走看看