Javascript面向对象基本实现

来源:互联网 发布:简单数控车床编程100例 编辑:程序博客网 时间:2024/04/28 19:59

Javascript严格来说不属于面向对象语言,因为他没有类似java中的class关键字来创建一个类,但是Javascript也可以很轻松的实现(模拟)面向对象的特性;

记住一点函数既是对象,对象也是函数;引用类型有对象,数组和函数。判断引用类型的方法通过instanceof关键字来实现;

第一点:函数其实是通过Function构造函数来实现的;示例如下:


第二点:通过instanceof可以判断函数既是对象,对象既是函数;示例如下:


创建对象的2种基本方式:

1.    语法糖:(以对象字面量的形式创建对象)


以上方式是Javascript实现对象的语法糖,不推荐使用,不适合实现面向对象原理;

2.    通过构造函数来实现对象


以上方式通过模拟面向对象特性创建了一个名为classF的类class(注意是类class)。然后通过new关键字实例化构造函数classF进行对象创建,其中this代表示例化后的指向对象的指针。
对第二种创建对象的方式进行全面剖析,在剖析之前,希望大家先了解面向对象的基本概念,首先引入成员修饰符的概念,我觉得javascript对于成员修饰符大概可以分为2种:公用(public),私有(private);而在javascript中没有类似于public和private关键字来控制成员的访问权限;

代码如下:


上面代码涵盖了javascript中的公有(public)和私有(private)的特性。
公有(public)性:是指在其他类里面可以直接访问,如上面例子所示,classF1中的name属性是公有属性,所以在其他类(classF2)中可以通过实例化classF1访问到name属性;

私有(private)性:指在其他类中不能直接(注意直接)访问。严格来说是由于JS的函数作用域产生的这种特性,在Javascript中函数内的声明的属性不能被函数外部访问;所以age属性不能直接访问。可以通过调用公有方法间接访问属性age;



原创粉丝点击