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

    使用面向对象时,只关注对象提供的功能,不关注其内部细节

    面向对象编程的特点:抽象、封装(不考虑内部实现 ,只考虑功能使用)、继承(从已有对象上,继承出新的对象)

    对象的组成:

      方法-----函数:过程、动态的

      属性-----变量:状态、静态的

    为对象添加方法和属性

    this详解,事件处理中this的本质

      window

      this----函数属于谁

    不能在系统对象中随意附加方法、属性,否则会覆盖已有方法、属性,所以引入object对象

    object对象

    任何函数前面都能加new,函数里面的this指向对象,不再指向window

    调用函数前面如果加new,偷偷创建对象,偷偷返回

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>

    <body>
    </body>
    </html>
    <script>

    //类:模型(不具备实际功能),对象:产品


    var arr1=new Array(12,34,1,1);
    var arr2=new Array(12,1,1,1);

    Array.prototype.sum=function() //原型是给类加东西,class
    //arr1.sum=function() //给对象加东西,行间样式
    {
    var result=0;

    for(var i=0;i<this.length;i++)
    {
    result+=this[i];
    }
    return result;
    };
    alert(arr1.sum());
    alert(arr2.sum());
    </script>
    <script>
    function createPerson(name,qq) <!--构造函数只需要写属性和方法,调用时先new一个对象,再调用该对象的方法-->
    {
    this.name=name;
    this.qq=qq;

    this.showName=function()
    {
    alert('我的名字是:'+this.name);
    }
    this.showQQ=function()
    {
    alert('我的QQ号是:'+this.qq);
    }
    }
    var obj=new createPerson('张三','1567815');
    //obj.showName();
    //obj.showQQ();
    </script>
    <script>

    <!--混合的构造函数/原型方式-->


    function CreatePerson(name,qq) //用构造函数加属性
    {
    this.name=name;
    this.qq=qq;
    }
    CreatePerson.prototype.showName=function() //用原型加方法
    {
    alert('我的名字是:'+this.name);
    }
    CreatePerson.prototype.showQQ=function()
    {
    alert('我的QQ号是:'+this.qq);
    }

    var obj=new CreatePerson('张三','1567815');
    obj.showName();
    obj.showQQ();
    </script>

  • 相关阅读:
    MyBatis学习总结_17_Mybatis分页插件PageHelper
    MyBatis学习总结_16_Mybatis使用的几个建议
    MyBatis学习总结_15_定制Mybatis自动代码生成的maven插件
    MyBatis学习总结_14_Mybatis使用技巧总结
    MyBatis学习总结_13_Mybatis查询之resultMap和resultType区别
    Git实战之Git创建版本库
    Oracle数据库之日期函数
    Oracle数据库之单表查询
    版本发布后测试人员需要做的工作
    oracle数据库之数据插入、修改和删除
  • 原文地址:https://www.cnblogs.com/iloveyou-sky/p/3232454.html
Copyright © 2011-2022 走看看