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

     面向对象:不了解原理的情况下,会使用功能,不关注内部细节,是一种通用思想

    对象:黑盒子 不了解内部的结构,知道表面的各种操作

    面向对象编程OOP:

    •    特点:抽象(抓住核心问题),
    •    封装(不考虑内部实现,只考虑功能),
    •    继承(遗传 父母和孩子 从父类继承出一些属性和方法,还可以 有自己的新方法)

                 多重继承  多态

    对象由属性和方法组成

    • 属性-变量:状态 静态
    • 方法-函数:过程 动态
      <!DOCTYPE html>
      <html>
      <head lang="en">
          <meta charset="UTF-8">
          <title></title>
      </head>
      <body>
      <script type="text/javascript">
          var a=7;//变量 自由的,不属于任何人
          alert(a);
          var arr=[1,2,3,4,5,6];
          arr.a=12;//属性 非自由,属于一个对象
          alert(arr.a);
          function aa(){
              alert('abc');//函数:自由
          }
          aa();
          arr.aa= function () {
              alert('abcd');//方法:非自由 属于对象
          }
          arr.aa();
      
      </script>
      </body>
      </html>

      结果:7       12     abc     abcd

    • this:当前发生事件的对象   当前的方法属于谁

      <script type="text/javascript">
          var arr=[1,2,3,4];
          arr.a=12;
          arr.show=function(){
              alert(this.a);
          }
          arr.show();
      </script>

      12

      <script type="text/javascript">
          window.show=function(){
          alert(this);
          }
          show();
      </script>

      object Window   当前的方法属于谁  属于Window

    • 不能再系统对象中随意添加方法、属性,否则会覆盖已有方法和属性
    • object 对象  没有东西
    <script type="text/javascript">
       var obj=new Object();
        obj.name='blue';
        obj.qq='930260035';
        obj.showName= function () {
            alert('我的名字是:'+this.name);
        }
        obj.showQQ= function () {
            alert('我的qq是:'+this.qq);
        }
        obj.showName();
        obj.showQQ();
    </script>

       

    <script type="text/javascript">
        function createPerson(name,qq){//构造函数
           //原料
            var obj=new Object();
            //加工
            obj.name=name;
            obj.qq=qq;
            obj.showName= function () {
                alert('我的名字是:'+this.name);
            };
            obj.showQQ= function () {
                alert('我的qq是:'+this.qq);
            };
            //出厂
            return obj;
        }
        var obj=createPerson('blue','54546466');
        obj.showName();
        obj.showQQ();
        var obj2=createPerson('张三','555555555');
        obj2.showName();
        obj2.showQQ();
    </script>
    • 工厂方式的缺点:没有new    函数重复导致资源浪费
  • 相关阅读:
    笔记44 Hibernate快速入门(一)
    tomcat 启用https协议
    笔记43 Spring Security简介
    笔记43 Spring Web Flow——订购披萨应用详解
    笔记42 Spring Web Flow——Demo(2)
    笔记41 Spring Web Flow——Demo
    Perfect Squares
    Factorial Trailing Zeroes
    Excel Sheet Column Title
    Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/Yimi/p/6347715.html
Copyright © 2011-2022 走看看