什么是js的面向对象呢?
面向对象就是面向对象就是具有抽象、封装、继承的示例,它由方法和属性组成。举个例子吧:比如Date函数,里面就有很多的方法可以调用。我们不用了解它里面的代码,还可以自己构造函数。
面向对象有三大特点:
a.抽象性–抓住核心问题
b.封装性–不考虑内部实现,只考虑功能使用
c.继承性–从已有对象上,继承出新的对象
构造函数编写:
首先是基本的对象创建:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
window.onload=function(){
var obj=new Object();//创建一个新对象
obj.name='华宇'//object对象的属性
obj.age=22;
obj.showName=function()//object对象的方法
{
alert(obj.name);
}
obj.showAge=function()
{
alert(obj.age);
}
obj.showName();//调用object对象的方法
obj.showAge();
}
</script>
</head>
<body>
</body>
</html>
创建一个对象可以使用上面例子,但是如果是多个对象的创建呢?会不会觉得很繁琐,这时就需要给对象来个构造函数,构造函数后,创建多个对象 时,就可以直接调用构造函数了
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
window.onload=function(){
// var obj=new Object();//创建一个新对象
// obj.name='华宇'//object对象的属性
// obj.age=22;
//
// obj.showName=function()//object对象的方法
// {
// alert(obj.name);
// }
// obj.showAge=function()
// {
// alert(obj.age);
// }
//
// obj.showName();//调用object对象的方法
// obj.showAge();
function person(name,age)
{//构造函数
var obj=new Object();
obj.name=name;//方法
obj.age=age;
obj.showName=function(){//属性
alert(this.name);//这里的this指的是当前的对象,即为obj
}
obj.showAge=function(){
alert(this.age);
}
return obj;
}
var obj=person('张三','23');//调用person函数,传入数据
obj.showName();
obj.showAge();
var obj=person('李四','25');//调用person函数,传入数据
obj.showName();
obj.showAge();
//alert(obj.name==obj.name);//弹出两个对象的属性名:obj.name
}
</script>
</head>
<body>
</body>
</html>