zoukankan      html  css  js  c++  java
  • 我要谈对象之——JavaScript面向对象(1)

    任何语言里都有面向对象,除了个别的。今天,我要说的是javascript中面向对象。

    什么是面向对象?

    计算机中的一切算法和逻辑都是源于生活中的,对象,这个抽象的概念并不是男同胞理解的妹子哈,对象,无处不在。比如……

    你的电脑键盘就是一个对象。我们可以用它敲文字,那么这就是他的方法。而方法永元是运动的。那么它有很多按键。这些按键每个都对应着一个不同的固定的内容,比如按键a,你不可能按了他屏幕上出个字母b,中毒除外哈。那么这些按键我们就叫他属性。属性永运都是静态的。

    总结一下哈:对象定义:分为两种:对象使用者,对象创造者。

    1、我们并不知道他内部是怎么运行的,但我们会用,比如按下a就会出现a字母,我们不需要明白为什么会这样,但我们会用就行。——对象的使用。

    2、对象的组成:方法(函数)——运动;属性(变量)——静态;——对象的创造者;
            
             3、重要特性:继承。也可以叫遗传。
                  遗传 A->B;从父类上继承出一些方法、属性,子类,又有一些特征。 

    好,还是不太懂,因为我写的太烂了哈。那么我再仔细的写。

    对象的使用者,在js里其实有很多js给我们写好的对象我们只要拿来用就行了。比如array();使用方法:1、var arr=new array();2、var arr=[1,2,3,]。有基础的都明白哈,这个不就是一个数组吗,是的。但你有想过它为什么写好后,就可以有属性length,还有arr[0]下标能用,而其他的就不行呢?其实,这就是js写好的面向对象,我们只要初始化拿来用就可以使用它封装好的方法,但是,我们从不知道他内部做了什么,只是会用。这就是使用者。

    总是用别人的东西,不太好,所以,我们要自己写,函数的封装也好,还是面向对象也罢,最后,你写出来的那个,还可以叫插件!哎,这很多人就懂了。一套方法,他没有具体的用处,但是我一旦有了需求,我可以无限使用它去处理不计数的相同问题的事件。

    看代码:

    1、Function fn(){

    Alert(“宋宇是最帅的”)

    }

    2、Var obj={

    Fn:function(){

    Alert(“还用你说”)

    }

    }

    1、函数就是一个函数,调用方法直接fn()就好。2、是对象里的函数,调用方法obj.fn();

    很多人有疑惑,有什么区别,有区别,如果这个obj是一个可接受动态参数的this呢,那么你就可以任意的使用这个对象了。

    总结:1.函数是自由的,可以直接调用,没有父亲。方法也是函数,但他是属于一个对象的,他有父亲。

    2.属性也是变量,跟方法一样,他是属于对象的。Ok。这样说,很多小朋友就该明白了哈,我文笔不是太好。慢慢理解哈。

    面向对象的世界里有工厂模式,这里就不写了。因为一个致命的问题。他会导致性能下降,为什么呢?因为他每一次被使用就会生产一个新的函数,这样如果多了,会让内存溢出的。(如果你想了解更多,请q我。工厂方式,其实你经常写过。就是单纯的传参,套用。)

    那么,坚持要写自己对象的小朋友怎么办?

    有的。

    用构造函数写属性
    用原型方式写方法
    构造函数首字母大写

    哦买噶!看到高逼格的名字是不是瞬间就尿了。其实他们,真的很简单。

    看代码:

    function Gouzao(name,qq){  //用构造函数写属性
        this.name=name,this.qq=qq;
    }
        Gouzao.prototype.names= function () {  //用原型方式写方法
            alert(this.name)
        };
        Gouzao.prototype.qqs= function () {   //用原型方式写方法
            alert(this.qq)
        };
        var a=new Gouzao("宋宇",289483936);
    a.names();
    a.qqs();
        var b=new Gouzao('解松涛', 406842877);
    b.names();
    b.qqs();

    如果是工厂模式,那么这两个方法是两个独立的函数,如果多了,就会让性能下降。

    现在这个,他叫混合模式。

    用构造函数写属性
    用原型方式写方法
    构造函数首字母大写

    而prototype是给对象扩展用的,这里不再多说,随便百度一下就能知道哈。

    关键知识:理解什么是对象。概念和构成。用法和写法。还有几种模式。

    我们经常写的这种也有名字:

    Var JSON={

    “name”:”宋宇”,

    “age”:”21岁”,

    “sex”:“男”

    }

     

    JSON对象。一般给服务器提交数据的时候,我们用json格式提交。

    Ok,以上就是我的基础对象的入门级专治懵逼小朋友的糟文。(大神请捂眼)

    宋宇愿意告诉你更多。

    http://websong.gitee.io/songyublog/
  • 相关阅读:
    jQuery笔记(1)
    [bzoj 1878][SDOI2009]HH的项链
    [bzoj 1968][Ahoi2005]COMMON 约数研究
    [bzoj 1899][ZJOI2004]lunch 午餐
    [bzoj 1090][SCOI2003]字符串折叠
    CodeForces 1029E div3
    [bzoj 1270][BeijingWc2008]雷涛的小猫
    [bzoj 1260][CQOI 2007]涂色paint
    [AtCoder ARC101D/ABC107D] Median of Medians
    [luogu 1070]道路游戏(NOIP2009T4)
  • 原文地址:https://www.cnblogs.com/webSong/p/6159348.html
Copyright © 2011-2022 走看看