Javascript面向对象基本实现
2017-05-16 17:40
357 查看
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;
记住一点函数既是对象,对象也是函数;引用类型有对象,数组和函数。判断引用类型的方法通过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;
相关文章推荐
- Javascript实现最简跨平台面向对象拖拽
- Javascript 面向对象机制的实现
- 面向对象在JavaScript中的接口实现
- JavaScript从入门到放弃(3)-对象的不同创建方法-实现真正的面向对象
- JavaScript ES5面向对象实现一个todolist
- javascript 面向对象,实现namespace,class,继承,重载
- Java面向对象高级--继承的基本实现--extends
- Javascript 类与静态类的实现-js面向对象
- 前端开发:面向对象与javascript中的面向对象实现(二)构造函数与原型
- 面向对象在JavaScript中的接口实现
- JavaScript中的new-面向对象实现原理
- JavaScript面向对象简易实现
- Javascript面向对象特性实现(封装、继承、接口)
- javascript 中面向对象实现 如何继承
- Javascript实现最简跨平台面向对象拖拽
- javascript 面向对象特性与编程实现
- Make Things Move -- Javascript html5版(二)实现最基本的Sprite类和stage管理对象
- 不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
- js入门三JavaScript 面向对象实现
- javascript面向对象实现方法(类的继承与多态)