zoukankan      html  css  js  c++  java
  • 面向对象---prototype

    构造函数里的this,外面的new

     1 <script>
     2 //用工厂方式构造对象
     3 function createPerson(name, sex)    //构造函数
     4 {
     5     //假想的系统内部工作流程
     6     //var this=new Object();
     7     this.name=name;
     8     this.sex=sex;
     9     
    10     this.showName=function ()
    11     {
    12         alert('我的名字叫:'+this.name);
    13     };
    14     this.showSex=function ()
    15     {
    16         alert('我是'+this.sex+'的');
    17     };
    18     //假想的系统内部工作流程
    19     //return this;
    20 }
    21 var p1=new createPerson('blue', '男');
    22 var p2=new createPerson('leo', '女');
    23 /*p1.showName();
    24 p1.showSex();
    25 p2.showName();
    26 p2.showSex();*/
    27 alert(p1.showName==p2.showName);
    28 </script>

    new出来的Object

    类----这个东西类似于CSS里面的class,用来构造对象。类=构造函数

    对象(实例)-----有自己的功能,被类构造出来

    1 <script>
    2 function show()
    3 {
    4     alert(this);
    5 }
    6 show();        //window
    7 new show();    //新创建的对象
    8 </script>

    原型---解决了资源浪费,多次重复的创建对象的问题。

     1 <script>
     2 var arr1=new Array(12, 5, 8, 4);
     3 var arr2=new Array(44,6,5,4,5,55,9);
     4 //arr1.sum=function ()
     5 Array.prototype.sum=function ()
     6 {
     7     var result=0;
     8     var i=0;
     9     for(i=0;i<this.length;i++)
    10     {
    11         result+=this[i];
    12     }
    13     return result;
    14 };
    15 /*alert(arr1.sum());
    16 alert(arr2.sum());*/
    17 alert(arr1.sum==arr2.sum);
    18 </script>

     构造函数+prototype

     1 <script>
     2 function Person(name, sex)//构造函数用来添加属性,属性是变化的
     3 {
     4     this.name=name;
     5     this.sex=sex;
     6 }
     7 Person.prototype.showName=function ()//原型用来添加方法,方法是不变的
     8 {
     9     alert(this.name);
    10 };
    11 Person.prototype.showSex=function ()
    12 {
    13     alert(this.sex);
    14 };
    15 var p=new Person('bee', '男');
    16 p.showName();
    17 p.showSex();
    18 </script>

    原型和对象方法的优先级

    1 <script>
    2 Array.prototype.a=12;
    3 var arr=[1,2,3];
    4 alert(arr.a);    //12
    5 arr.a=5;
    6 alert(arr.a);    //5,这个的优先级更高
    7 delete arr.a;
    8 alert(arr.a);    //12
    9 </script>
    念念不忘,必有回响。
  • 相关阅读:
    时间等待太重要!!!
    (引用 )自动化测试报告HTMLtestrunner
    (转载)selenium-webdriver(python)
    lr_convert_string_encoding()转码函数
    分步骤学习自动化测试
    (引用)web安全测试
    Monkey测试
    (学习网址)Python 自动化测试
    (引用) unittest测试驱动之执行测试(三)
    log4net日志组件
  • 原文地址:https://www.cnblogs.com/paxster/p/3139938.html
Copyright © 2011-2022 走看看