您的位置:首页 > Web前端 > JavaScript

js-面向对象的概念

2016-10-20 20:22 155 查看
什么是面向对象?首先,先理解一下对象,很多事物都是对象,简单到一整数,复杂到一架飞机,对象是一个整体,对外提供一些操作;那么面向对象就是说,使用对象的时候,你可以直接使用它所提供的功能而忽略其内部组成情况。面对对象不一定只有在编程界里才有,我们生活中无处不在;我的理解是这样的:比如说,你家里的电视机,你使用了遥控,就能操作电视机,但是你实际上不知道这台电视机里面是什么零件组成的,你只要知道,我拿到遥控就可以操作电视机就好了。这就是一种面向对象的思想。js中的面向对象1、面向对象编程的特点:抽象:抓住核心问题封装:不用考虑内部实现过程,只要考虑功能的使用继承:从已有对象,继承出新的对象2、对象的组成方法:函数--过程、动态的属性:变量--状态、静态的
<script>
var a=12;//变量:自由的,不属于任何人
alert(a);
var arr=[1,2,3,4,5,6];
arr.a=12;//属性:属于一个对象的
alert(arr.a);
</script>
/*-----------------------------------------------------------------------------------------------------------------------------*/
<script>
function aaa()//函数:自由
{
alert('abc');
}
var arr=[1,2,3,4];
arr.aaa=function()//方法:属于一个对象
{
alert('abc');
};
aaa();
arr.aaa();
</script>
写一个面向对象的程序1、为对象添加属性和方法
<script>
var arr=[1,2,3,4];
arr.a=12;
arr.show=function()
{
alert(this.a);
};
oDiv.onclick=function()
{
alert(this);
};
arr.show();
</script>
//上面的this属于谁?
2、this详解,事件处理中this的本质<script>window.show=function(){alert(this);};show();</script>//会弹出什么?上面的属性和方法都是加在数组对象上的,我们有个原则:不能在系统对象中随意附加方法、属性,否则会覆已有方法、属性。所以这里,我们利用object来创建新对象:
<script>
var obj=newObject();
obj.name='blue';
obj.qq='258248832';
obj.showName=function()
{
alert('我的名字叫:'+this.name);
};
obj.showQQ=function()
{
alert('我的QQ号:'+this.qq);
};
obj.showName();
obj.showQQ();
</script>
如果有两个对象的情况;则
obj.name='blue';
obj.qq='258248832';
obj.showName=function()
{
alert('我的名字叫:'+this.name);
};
obj.showQQ=function()
{
alert('我的QQ号:'+this.qq);
};
obj.showName();
obj.showQQ();
var obj2=newObject();
obj2.name='张三';
obj2.qq='5468978546';
obj2.showName=function()
{
alert('我的名字叫:'+this.name);
};
obj2.showQQ=function()
{
alert('我的QQ号:'+this.qq);
};
obj2.showName();
obj2.showQQ();
</script>
上面的写法虽然没有问题,但是代码冗余,改进一下:构建函数(该函数的功能是构建对象)
<script>
function createPerson(name,qq)//构造函数
{
varobj=newObject();
obj.name=name;
obj.qq=qq;
obj.showName=function()
{
alert('我的名字叫:'+this.name);
};
obj.showQQ=function()
{
alert('我的QQ号:'+this.qq);
};
returnobj;
}
var obj=createPerson('blue','258248832');
obj.showName();
obj.showQQ();
var obj2=createPerson('张三','45648979879');
obj2.showName();
obj2.showQQ();
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: