美文网首页
面向对象

面向对象

作者: 嘬烟盒的程序员 | 来源:发表于2017-03-14 18:57 被阅读0次

    面向对象:
    对象:女朋友 猫 ,电视()
    万物皆对象
    var oDate=new Date();
    oDate.getTime();
    面向对象:只管用,就行。不用关心内部实现
    var arr=[];
    arr.push(1);
    对象:
    1.用对象
    2.写对象 $$$
    对象怎么构成:
    1.属性
    变量
    变量,是自由的;属性,有所属者mmm
    2.方法
    函数
    ------------------------------------
    this:当前发生事件
    当前方法属于谁,this就是谁
    *默认全局属于window
    *js本身就有很多bug
    作者就自己承认
    布莱登·艾克 java
    ----------------------------------
    js
    试着更改一些bug
    严格模式:
    'use strict'
    严格模式的好处:
    1.修复了局部函数this的问题
    2.不允许在if/for等里面定义函数
    3.干掉了with(公用代码){}
    4.定义变量必须加var
    作用域范围:
    1.最大不超出script标签
    2.可以放在函数里面
    3.放在文件里面
    *在以后写代码的时候都要加上


    造对象:造人
    属性:物体特征
    方法:物体行为


    内置系统对象:(不要用系统的内置对象)
    Date();
    arr
    reg
    json


    js中造一个空白对象:
    var obj=new Object();
    首字母大写的函数统称:构造函数
    *为了和普通函数做一个区分


    工厂模式:
    原料->加工->出厂


    *new都干了什么
    1.帮咱们创建了一个空白对象,并且赋值给了this
    2.加了new 之后,系统自动帮你返回return

    *new后面跟的都是函数(构造函数)
    .red{background-color:red;}
    <div class='red'></div>
    <div class='red'></div>
    <div class='red' style="background:green;"></div>
    <div class='red'></div>
    <div class='red'></div>


    原型:
    prototype
    给一类添加东西
    原型用处:扩展系统方法

    面向对象:
    1.构造函数里面添加属性
    2.方法添加到原型上


    面向对象的称呼:
    类(构造函数) 构造对象相当是个模子
    对象(实例):new 构造函数 有实际功能,模子产出东西


    面向对象的特征:
    封装
    {

    *继承

    多态
    
    继承:遗传  子级可以继承父级
    

    ******任何东西都是对象 Object

    检测一个对象的具体类型:
    instanceof
    :自己,自己的父级,自己的父级的父级......
    现在就想找它自己的亲爹:
    constructor: 构造器/构造函数
    只检测父级


    js中诡异的事情:
    去看诡异事情的例子


    基本数据类型:
    字符串
    数字
    布尔
    fn
    //obj
    undefined
    var a=1;
    包装类:(java借鉴过来的)
    var a=new Number(5);


    面向对象里面把this搞明白,基本就会了
    this:
    this的优先级:(多包一层失效)
    new->object
    定时器->window
    事件->事件对象
    方法->当前对象
    其他

    继承:
    子级继承父级功能
    给父级添加一个功能,子级默认就有
    function CreatePerson()
    function Person()
    function Worker()
    fn W(){
    this.name=''
    this.age=''
    this.job=''
    }


    继承:
    属性:
    改变this指向:
    .call(this指向,参数1,参数1···);
    .apply:跟call的功能一样
    .apply(this指向,[参数1,参数1···]);
    //arguments代表所有的实参参数
    .apply(this指向,arguments);
    方法:
    1.子级.prototype=父级.prototype;
    2.for(var name in Person.prototype){
    循环复制
    }
    3.Worker.prototype=new Person();
    Worker.prototype.constructor=Worker;
    继承:
    1.属性
    父级的构造函数.apply(this,arguments);
    2.方法
    子级的构造函数.prototype=new 父级构造();
    子级的构造函数.prototype.constructor= 子级构造;


    特称:
    封装:抽
    继承:子类可以继承父类的所有东西
    多态:js里面没有意义
    类:构造函数
    对象(实例):有真正功能
    强制改变this:
    .call
    .apply
    属性:
    父类.call(this,cs1,cs2);
    父类.apply(this,arguments);
    方法:
    子类.prototype=new 父类();
    子类.prototype.constructor=子类;


    变量名冲突:
    1.封闭空间()()
    (function(){})();自执行匿名函数、闭包
    (function(){}())
    ~function(){}()
    2.模块化
    3.面向对象
    4.命名空间
    规划整个网站
    公用函数
    var BaiduWeb={
    pc:{
    pub:{}//公用函数
    Effect:{}//各种效果
    },
    mobile:{}
    };

    相关文章

      网友评论

          本文标题:面向对象

          本文链接:https://www.haomeiwen.com/subject/ldohnttx.html