zoukankan      html  css  js  c++  java
  • JS 对象

    function createPerson(name,age,job){
      var o=new Object();
      o.name=name;
      o.age=age;
      o.job=job;
      return o;
    }
    var p1=createPerson('name',11,'pair');
    p1 instanceof createPerson    //返回false
    //事实上instanceof 是通过对比该对象的constructor 是否是右边  但是工厂模式创建出来的对象constructor都是object
    p1.constructor// 得到function Object() { [native code] }
    
    //构造函数模式
    function Person(name,age,job){
      this.name=name;
      this.age=age;
      this.job=job;
      this.introduce=function(){
        alert("My name is "+this.name+", I am"+age+"year(s) old, I am a "+job+".");
      }
    }
    
    var p2=new Person('name',11,'emp');
    //首先需要知道new的事后都发生了什么  
    //new 会返回一个对象  且该对象的_proto_指向Person的Prototype  而Person的原型的constructor就是Person
    //所以p2的constructor属性 (等下 p2实例并没有constructor属性啊)  但是它所属类的Person的原型有  于是属性查找到了Person的原型
    //显然我们知道类的原型有constructor属性  这个属性指向类(函数)本身
    p2.constructor //得到function Person(name,age,job){}
    p2 instanceof Person // true
    
    
    
    //原型模式
    function Pers(){
    
    }
    
    Pers.prototype.name='nico';
    Pers.prototype.age=20;
    var p3=new Pers();
    p3.constructor //function Pers(){}
    p3 instanceof Pers //true

    参考  http://www.zhihu.com/question/21220141

  • 相关阅读:
    SpringBoot返回json和xml
    Spring boot 集成MQ
    Spring boot freemarker 配置
    Spring boot 自定义注解标签记录系统访问日志
    RIDE对应驱动下载
    在线修改pdf识别图片
    记公司食堂收厨余垃圾的人
    [Ruby]使用Ruby抓取网页及加工处理
    [转载]SCSS 和 SASS 和 HAML 和CoffeeScript
    [ACM]反复平方法的两种写法
  • 原文地址:https://www.cnblogs.com/cart55free99/p/3765961.html
Copyright © 2011-2022 走看看