• javascript-面向对象和原型(2).


    继续....先来一段 常见构造函数

    1 function Box(){};                                                     
    2         Box.prototype.name='Lee';
    3         Box.prototype.age=100;
    4         Box.prototype.run=function()
    5         {
    6                 return this.name + this.age+'运行中...';
    7         };
    8         
    9         var box1 = new Box();

    ★访问构造函数原型

    1 function Box(){};                                                     
    2         
    3         var box1 = new Box();
    4         //alert(box.prototype);                //使用对象实例无法访问到prototype
    5         //alert(box._proto_);                 //使用对象实例访问prototype的指针
    6         alert(Box.prototype);                //使用构造函数名(对象名)访问prototype

    ★使用字面量的方式创建原型对象

     1 /*在使用字面量创建原型对象的时候,字面量创建的方式使用constructor属性不会指向实例
     2    so,我们可以在原型字面量里面添加constructor强至指向 指定的构造函数
     3 */
     4 function Box(){}
     5 Box.prototype={
     6     constructor:Box;       //
     7     
     8     name:'Lee',
     9     age:100,
    10     run:function()
    11         {
    12                 return this.name + this.age+'运行中...';
    13         };
    14 }
    15 
    16     //var box =new Box();
    17     //alert(box.constructor == Box);            //true
    18     
    19     //重写原型对象
    20     Box.prototype={
    21         age:200;            //这里不会保留之前原型的任何信息了
    22                             //把原来的原型对象和构造函数对象实例之前的关系切断了。
    23     }
    24     
    25     var box =new Box();
    26     alert(box.run());            //run 已经不存在了 因为从写了原型

    ★原型对象还可以在ECMAScript内置的引用类型都可以使用这种方法

     1 //数组排序
     2 var box = [5,1,6,9,3,5,8];
     3 alert(box.sort());
     4 
     5 //查看sort是否是Array原型对象里的方法
     6 alert(Array.prototype.sort);
     7 alert(String.prototype.substring);
     8 
     9 //内置引用类型的功能的扩展
    10 String.prototype.addstring =function()
    11 {
    12     return this+'被添加了!';
    13 }
    14 
    15 alert('Lee'.addstring()); 
  • 相关阅读:
    mysql 账户管理
    关于数据库设计的思考(三)
    学习 ThinkPHP 框架笔记
    学习 Ext Js 所感
    mysql 一个较特殊的问题:You can't specify target table 'wms_cabinet_form' for update in FROM clause
    关于数据库设计的思考(二)
    flash、flex 项目开发学习时的笔记
    web.config 中SessionState的配置
    公农历转换
    使用Microsoft Web Application Stress Tool对web进行压力测试
  • 原文地址:https://www.cnblogs.com/VanqusherCsn/p/4313582.html
Copyright © 2020-2023  润新知