面向对象基础(一)
- 什么是面向对象,面向对象的抽象概念
使用对象时,只关注对象提供的功能,不关注其内部细节。如jquery
- 面向对象的思想
- JS中的面向对象、面向对象(OOP)的特点
- 抽象、封装、继承(封装、继承、多态)
抽象:抓住核心问题
封装:不考虑内部实现,只考虑功能使用
继承:从已有对象,继承出新的对象 - 对象的组成:属性与方法
<script>
var arr=[1,2,3,4,5];
var a=12; //变量:自由
arr.a=5; //属性:属于一个对象
function show() //函数,,自由的,谁都不属于
{
alert('a');
}
arr.fn=function () //方法
{
alert('a');
};
</script>
- 第一个面向对象的程序
- 面向对象中this的指向
<script>
var arr=[12, 65, 87];
//this:当前的方法,属于谁
arr.show=function ()
{
alert(this);
};
oDiv.onclick=function ()
{
alert(this);
};
</script>
- 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>
- 工厂方式、构造函数、工厂方式的问题
函数:独立的,
方法:属于一个对象的
事件处理函数:处理事件的
构造函数:构造对象的
构造对象叫工厂方式,
<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不相等
网友评论