JavaScript三大特性,继承封装多态
来源:互联网 发布:windows任务管理器进程 编辑:程序博客网 时间:2024/05/17 13:10
javascript的相关特性
一.、面向对象的三大特性:继承封装多态
作为基于对象的语言,js自然可以实现OOP语言的大部分特征。
继承:js没有类的概念,自然不能像php那样封装class然后继承最后new对象。但是js的继承却有更多的方式。在此讨论最常用的,也就是基于原型对象原型链继承。在js中,函数对象就相当于类,在函数对象中有一个prototype属性指向了函数对象的原型对象。在函数对象上创建对象,此对象中有一个proto的属性,也指向原型对象,那么此属性有什么作用呢?在对象调用属性或者方法时,先在实例中查找,如果找不到,则会去proto指向的原型对象中查找,这就叫做原型链,在此特别提出,原型对象中的方法和属性是所有实例公用的。基于此种特性,可将其实例B重写给函数A的原型对象,那么实例A在使用方法时,先在实例中寻找,如果没找到,则在原型对象也就是实例B中查找,如果还找不到,则会沿着实例B中的proto寻找函数B的原型对象,原型链即形成。
封装:所谓封装的概念,是不希望暴露函数中属性或者方法的地址,使外界不能操作,但是可以暴露特有的公有接口,可以利用接口操作,js的函数对象中也有私有和公有的概念,当然就有封装这个概念了。下面举例,在此栗子中,name属性就被封装起来,只能通过公有的接口来访问。
function A(){
var name='xiaoming';
this.getname=function(){
return name;
}
}
多态:弱数据类型中都是没有多态的,或者说都天然支持多态,多态又分类的多态,方法的多态,变量的多态。可以解释为一种类、方法、变量的多种状态
首先说类的多态:拿java举栗子,如果在A类实例化出的对象接受一个对象引用,那么需要在构造方法中指明接受对象的类名,为了更多的接受不同类对应的对象,
就会将不同的类抽象出一个父类,然后将父类写在构造函数中,这样就可以接受不同类的对象了,这就叫做类的多态,一个父类的不同状态。其实多态的前提是因为存在这样的限制,弱数据
类型没有这样的限制,那么也就不存在多态这个说法了,或者说天然多态
class A(类名 引用){
}
方法的多态:不同类中可以用相同的方法,意为一个方法的不同状态,js当然可以做到
变量的多态:弱数据类型不用指定类型,当然就是多态的。
- JavaScript三大特性,继承封装多态
- OC语言-三大特性之封装继承多态
- JAVA的三大特性:封装、继承与多态
- Java三大特性之封装继承多态
- C++三大特性封装继承多态
- Java三大特性,封装继承多态
- java三大特性封装、继承、多态概述
- java三大特性:封装、继承、多态
- java 三大特性 封装 继承 多态
- C++三大特性:封装、继承、多态
- Java三大特性,封装、继承、多态
- Java三大特性---封装,继承,多态
- C++三大特性:封装、继承、多态
- Java三大特性(封装,继承,多态)
- java基础三大特性——封装、继承与多态
- Java学习第六课--面向对象的三大特性(封装、继承和多态)
- java基础三大特性——封装、继承与多态
- java基础三大特性——封装、继承与多态
- 截获 Windows socket API
- linux 批量替换文件内容及查找某目录下所有包含某字符串的文件(批量修改文件内容)
- 数据库事务
- ELK中logstash下的grok正则表达式总结
- 友盟SDK如何防止应用因获取IDFA被AppStore拒绝
- JavaScript三大特性,继承封装多态
- 缓存淘汰算法
- boost linux 下面部署
- 【a302】&&【9306】贮油点问题
- struts页面跳转
- 博客转到labisart.com/blog,请大家捧场
- Android对话框的高级设置《一》设置对话框按钮的图像和在内容文本中插入图像
- Android WebView —— Java 与 JavaScript 交互总结
- Android中JNI的使用方法