javascript面向对象:
* 函数
* Arguments对象:
* Arguments对象是数组对象
* Arguments对象的length属性可以获取参数的个数
* 利用Arguments对象模拟函数的重载效果(javascript中不存在函数重载)
* 变量的作用域:
* 全局变量与局部变量
* 全局变量:全局域与函数域(局部域)
* 局部变量:当前函数域
* 全局域与函数域
* 定义局部变量时,不使用"var",局部变量变成全局变量
* 定义全局变量与局部变量同名时,函数域中只能访问局部变量
* 几种特殊函数:
* 匿名函数:没有名的函数
* 回调函数:把一个函数作为参数传递给另一个函数,而作为参数的函数叫做回调函数
* 自调函数:定义即调用
* 第一个小括号:封装函数
* 第二个小括号:调用函数(传参)
* 内部函数:Java中的内部类
* 返回函数的函数
* 闭包
* 对象
* 定义对象:
* 普通对象
* new Object()
* var 对象名 = {
属性名 : 属性值,
方法名 : function(参数){}
}
* 函数对象
function 对象名(参数){
this.属性名 = 属性值;
this.方法名 = function(参数){}
}
* 调用对象:
* 普通对象:
* 调用:
* 第一种:
* 对象名.属性名;
* 对象名.方法名();
* 第二种:
* 对象名[‘属性名‘];
* 对象名[‘方法名‘]();
* 增加:
* 对象名.新的属性名 = 新的属性值;
* 对象名.新的方法名 = 新的function(){}
* 修改:
* 对象名.属性名 = 新的属性值;
* 对象名.方法名 = 新的function(){}
* 删除:
* delete 对象名.属性名;
* delete 对象名.方法名;
* 函数对象:
* 概念性理解:
* 函数对象的概念,实际上是不存在的
* 函数对象实际上是叫做构造器
* var 对象名 = new 构造器();
* 获取到函数对象(构造器)的属性和方法
* var 对象名 = new 构造器();
* 调用、修改、删除及增加与操作普通对象一致。
* 内建对象:
* 数据封装类对象
* String、Array、Number等
* 工具类对象
* Date、Math等
* 错误类对象
* Error、异常对象等
* 在javascript中,只有对象(变量、方法、集合等)
* javascript是更纯粹的面向对象
* 原型(prototype):及其重要(作用)
* 定义:原型就是一个函数对象的属性。
* 作用:
* 利用原型为函数对象增加属性和方法
* 函数对象的属性或方法与原型的属性或方法同名时:
* 函数对象本身的属性和方法的优先级要高于原型上的熟悉感和方法
* 利用函数对象的属性和方法重写原型上的属性和方法
* 内建对象(应该都是函数对象):都有prototype属性
* 可以扩展内建对象的属性和方法
* 实现继承
* 继承
* 定义:如果两个类都是同一个实例的类型,那么它们之间存在着某些关系,
我们把同一个实例的类型之间的泛化关系称为“继承”。
* 问题:
* 在javascript中,是不存在继承的关系的(关键字 extend)!
* 在javascript中,没有类的概念。
* javascript就不是一个直接的面向对象语言。
* "继承":
* javascript中函数对象与函数对象之间的继承。
* (了解)javascript中的普通对象之间,是否也存在"继承"关系呢?存在
原文:https://www.cnblogs.com/biaogejiushibiao/p/9428210.html