我爱编程

面向对象一

2018-04-08  本文已影响0人  Monee121

面向对象基础(一)

  1. 什么是面向对象,面向对象的抽象概念

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

  1. 面向对象的思想
  2. JS中的面向对象、面向对象(OOP)的特点
  3. 抽象、封装、继承(封装、继承、多态)
    抽象:抓住核心问题
    封装:不考虑内部实现,只考虑功能使用
    继承:从已有对象,继承出新的对象
  4. 对象的组成:属性与方法
<script>
var arr=[1,2,3,4,5];

var a=12;       //变量:自由
arr.a=5;        //属性:属于一个对象

function show() //函数,,自由的,谁都不属于
{
    alert('a');
}

arr.fn=function ()  //方法
{
    alert('a');
};
</script>
  1. 第一个面向对象的程序
  2. 面向对象中this的指向
<script>
var arr=[12, 65, 87];

//this:当前的方法,属于谁

arr.show=function ()
{
    alert(this);
};

oDiv.onclick=function ()
{
    alert(this);
};
</script>
  1. new Object() 对象、创建对象实例
<script>
var obj=new Object();

obj.name='blue';
obj.sex='男';

obj.showName=function ()
{
    alert('我的名字叫:'+this.name);
};
obj.showSex=function ()
{
    alert('我是'+this.sex+'的');
};

var obj2=new Object();

obj2.name='leo';
obj2.sex='女';

obj2.showName=function ()
{
    alert('我的名字叫:'+this.name);
};
obj2.showSex=function ()
{
    alert('我是'+this.sex+'的');
};

obj.showName();
obj.showSex();
obj2.showName();
obj2.showSex();
</script>
  1. 工厂方式、构造函数、工厂方式的问题
    函数:独立的,
    方法:属于一个对象的
    事件处理函数:处理事件的
    构造函数:构造对象的

构造对象叫工厂方式,

<script>
//用工厂方式构造对象

function createPerson(name, sex)    //构造函数
{
    //1.原料
    var obj=new Object();
    
    //2.加工
    obj.name=name;
    obj.sex=sex;
    
    obj.showName=function ()
    {
        alert('我的名字叫:'+this.name);
    };
    obj.showSex=function ()
    {
        alert('我是'+this.sex+'的');
    };
    
    //3.出厂
    return obj;
}

var p1=createPerson('blue', '男');
var p2=createPerson('leo', '女');

alert(p1.showName==p2.showName);

/*p1.showName();
p1.showSex();
p2.showName();
p2.showSex();*/
</script>

工厂函数的问题:
1.没有new
2.每个对象都有自己的一套函数,浪费资源

var a =function()
var a =new function()
var b=new functoin()
a和b不相等
上一篇 下一篇

猜你喜欢

热点阅读