zoukankan      html  css  js  c++  java
  • JavaScript面向对象学习笔记

    面向对象:
    变量和属性一样的。
    属性:属于一个对象
    变量:属于任何一个人
    函数:
    方法:属于一个对象
    难点:
    this:当前的方法属于谁,this就是谁的
    例子
    window.show = function(){
    alert(this);
    }
    //this是window
    function show(){
    alert(this);
    }
    Object:用来实现对象
    var obj = new Object();
    例子:
    var obj = new Object();
    obj.name = "zhaobw";
    obj.age = "12";
    obj.showName = function(){
    alert("我的名字:"+this.name);
    }
    obj.age = function(){
    alert("我的年龄:"+this.age);
    }
    /*
    *缺点:如果多个对象就会很麻烦
    */
    改进:
    模式:工厂模式
    缺点:
    (1)没有new
    (2)函数不能共用
    a.showname != b.shwoname
    function createPerson(name,age)//构造函数
    {
    //原料
    var obj = new Object();
    //加工
    obj.name = name;
    obj.age = age;
    obj.showName = function(){
    alert("我的名字:"+this.name);
    };
    obj.age = function(){
    alert("我的年龄:"+this.age);
    };
    //出厂
    return obj;
    }
    var a = createPerson('zhaobw','12');
    var b = createPerson('zhangsan','18');
    在函数前加了new
    系统会自动执行:
    (1)var this = new object();
    (2)return this;
    改进:解决new
    function createPerson(name,age)//构造函数
    {
    this.name = name;
    this.age = age;
    this.showName = function(){
    alert("我的名字:"+this.name);
    };
    this.age = function(){
    alert("我的年龄:"+this.age);
    };
    }
    var a = new createPerson('zhaobw','12');
    原型:
    改进:解决函数共用的问题
    (1)prototype给一组对象添加方法。
    (2)解决函数共用了。
    -------------------------------------------
    function asd(){//构造函数
    //不一样的部分放在构造函数
    }
    asd.prototype.show = funcrion(){
    //一样的部分放在原型里
    }
    --------------------------------------------
    json写对象
    json里可以放数字,字符串,对象,函数
    特点:简单
    适用范围:整个程序只有一个对象
    --------------------------------------------
    命名空间:可以让多个名字相同的函数存在

    var zns = {};
    zns.common = {};
    zns.fs = {};
    zns.site = {};
    zns.common.getUser = function(){
    alert("a");
    };
    zns.fs.getUser = function(){
    alert("a");
    };
    ---------------------------------------------
    继承
    对象有属性和方法组成
    call可以改变函数执行的this
    可以通过call来完成继承属性
    方法继承:
    for(var i in A.prototype) {
    B.prototype[i] = A.prototype[i];
    }
    *引用*
    var arr1 = [1,2,3,4]
    var arr2 =arr1;
    arr1和arr2引用同一块空间
    改变arr1时arr2也会发生变化
    避免引用:循环一遍就好

  • 相关阅读:
    6种负载均衡算法
    Java中volatile关键字
    剑指offer练习
    linux系统查看IP地址,不显示IP地址或者只显示127.0.0.1
    Nginx负载均衡配置
    集群应用Session一致性实现的三种方案
    rabbitMQ学习
    JDK1.8在LINUX下安装步骤
    ecplise部署gradle web项目
    Kubernetes下的应用监控解决方案
  • 原文地址:https://www.cnblogs.com/zhaobw/p/6349447.html
Copyright © 2011-2022 走看看