面向对象的几个问题

来源:互联网 发布:java socket 发送超时 编辑:程序博客网 时间:2024/06/05 14:58

一,什么是js面向对象?
今天学习了js面向对象,而且在老师讲解面向对象的前晚,就看了一下百科里面介绍的知识点,说的很专业,也非常抽象,所以,今天想谈谈这个神秘莫测的面向对象。
谈论js面向对象,我想谈谈面向对象,是从生活中的万事万物谈点东西。
其实,大家都知道,万物皆对象。那对象究竟是什么?很简单,对象就是我们在生活中见到的所有个体或者团体,比如,一个人,一架飞机…….就不一一列举。那
javascript中的对象又是什么呢?这里我就详细说下:首先,javascript中的对象,是一个抽象体,我们可以认为一个函数就是一个对象,但是这样说就过于片面,因为它更注重的是一种思想,一种经过分装的整体,因而有了复用性更强的特性,这种特性给在软件开发过程中带来了极大地方便,也提高了效率,如下代码:
function HelloWorld()
{
alert(‘hello world!’);
}
我们可以当做对象来使用。

二,js面向对象的特点:
1,抽象。 什么是抽象呢?首相我们想到的是世界上难以理解的东西,是抽象。javascript中面向对象里的抽象又是什么呢?我们打个比方:比如说,北京图书馆,上海市图书馆,图书馆里有北京图书管理员,上海读书管理员,它们当中有个共同的特性就是图书馆,所以我们就把他出想出来。很简单,javascript里抽象出来的是什么呢?就是捉住核心问题,将他分离出来。
2,封装。 什么是封装呢? 封装在javascript面向对象里是个很重要的概念,简单来说就是不考虑内部实现,只考虑外部功能的实现。jq就是面向对象里分装的典型,它内部数据的编写,我们是无法去研究的,我们只要通过接口来使用它的功能,
3,继承。什么是集成呢?简单说就是从以已有对象身上继承出新的对象。
4,多态。就是一个方法调用多个对象那里的属性,对象返回的值,如下的代码:
function creat(a, b){
var a = a;
var b = b;
if(typeof a == “number” && typeof b == “number”) {
alert(a * b);
}else if(typeof a == “string” && typeof b == “string”) {
alert(a + b);
}else{
alert(“输入错啦”);
}
}
creat(3, 4); // 输出12;
creat(“hi,”, “你好”); //输出hi,你好;
creat(“hi”, 5); //输入错啦.

三,怎么写构造函数?
构造函数,就是一个普通函数,但是内部使用了 this 变量。对函数使用 new,就能生成实例,并且 this 变量会绑定在实例对象上 使用构造器创建出来的对象会有一个 constructor 属性,指向它们的构造函数。
构造函数的类的首字母必须是大写字母。
function Cat(nam , colo){
 Animal.apply(this, arguments) 
this.nam = name;
this.colo = color;
}
  var cat1 = new Cat(“大毛”,”黄色”);
  alert(cat1.species); // 动物

原创粉丝点击