• js 面向对象编程


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
      5     <title></title>
      6     <meta charset="utf-8" />
      7 </head>
      8 <body>
      9     <script type="text/javascript">
     10         //javascript有一个内置对象object;利用他可以创建一个空白的对象
     11         person = new Object(); //使用object创建对象
     12         person.name = "张三"; //添加属性
     13         function func() { //定义一个方法,然后把它附加到person
     14             alert(this.name);//this关键字指向函数的父对象
     15         }
     16         Person.showName = func; //这里只有方法名; 如果带();是将方法的返回值赋值给person.showName;
     17         Person.showName(); //调用showName()方法
     18     </script>
     19 
     20     <script type="text/javascript">
     21         //匿名函数
     22         function func() {
     23             alert(this.name);
     24         }
     25         person.showName = func;//可以改写为
     26         person.showName = function () {
     27             alert(this.name);
     28         }
     29     </script>
     30 
     31     <script type="text/javascript">
     32         //无参数的构造函数
     33         function Person() {
     34             this.name = "zhangsan";
     35             this.age = 18;
     36             this.show = function () {
     37                 alert("无参数构造"+this.name+""+this.age);
     38             }
     39         }
     40         //有参数的构造函数
     41         function Person(name,age) {
     42             this.name=name;
     43             this.age=age;
     44             this.show = function () {
     45                 alert("带参数构造"+this.name +" "+ this.age);
     46             }
     47         }
     48         //对象的实例化
     49         var p1 = new Person(); //两个构造函数默认执行离代码最近的
     50         var p2 = new Person("zhangsan", 18); //创建两次对象;执行两次带参
     51         p1.show();//调用对象的方法
     52         p2.show();
     53     </script>
     54 
     55     <script type="text/javascript">
     56         //扩展对象
     57         function abc(name,age) {
     58             this.name = name;
     59             this.age = age;
     60             this.show1 = function () {
     61                 alert(this.name+" "+this.age);
     62             }
     63         }
     64         var a = new abc("zhangsa",18);
     65         a.show1();
     66         abc.prototype.sex = "男";//添加属性
     67         abc.prototype.show2 = function () { //添加方法
     68             alert(this.name +" "+ this.sex+"  "+this.age);
     69         }
     70         a.show2();//调用新方法
     71     </script>
     72 
     73     <script type="text/javascript">
     74         //继承
     75         function A() { //父对象
     76             this.name = "zhangsan";
     77             this.show1 = function () {
     78                 alert("姓名"+this.name);
     79             }
     80         }
     81         function B() {//子对象
     82             this.age = 18;
     83             this.show2 = function () {
     84                 alert("年龄"+this.age);
     85             }
     86         }
     87         B.prototype = new A();
     88         var test = new B();
     89         this.name = "lisi"; //继承父对象的name属性;并修改值
     90         test.show1();//继承"父对象"的show1()方法
     91         test.show2();//调用"子对象"的show2()方法
     92     </script>
     93 
     94     <script type="text/javascript">
     95         //封装
     96         function Box(width,length,height) {
     97             function volume(a, b, c) {
     98                 return a * b * c;
     99             }
    100             this.boxVolume = volume(width,length,height); //把方法的返回值赋值给属性
    101         }
    102         var box = new Box(1,2,3); //传参
    103         alert(box.boxVolume); //弹出属性值
    104 
    105         alert(volume(1,2,3));//不可用
    106     </script>
    107 </body>
    108 </html>
  • 相关阅读:
    Nexus3.0私服搭建
    JavaScript
    Spring基础
    Hibernate注解
    HTML5
    Apache Tomcat
    Java安装(Ubuntu)
    C++ 日期 & 时间
    C++ 引用
    C++ 指针
  • 原文地址:https://www.cnblogs.com/enych/p/7651901.html
Copyright © 2020-2023  润新知