1. 面向对象
PHP里,是从一个类里边获得一个具体对象
JavaScript里边,没有类的概念,可以直接创建一个对象(或通过函数)出来,对象可以有默认成员,后期也可以给对象丰富成员出来.
2.创建对象
1.字面量方式创建对象
var obj = {成员名称: 值, 成员名称:值,...}
2. 构造函数方式创建对象
3. object方式创建对象
3. 对象在内存的分配
和对象有关系的内存空间
1.栈区 存放数据大小比较小,一般大小固定的信息适合存放在该空间
2.堆区 存储数据比较多,空间较大,一般数据长度不固定的信息在该空间存放
3.数据空间 该空间存放常量,类的静态属性
4. 代码空间 存放函数体代码,方法体代码
4. 对象调用其他函数或方法
对象调用其他函数或调用其他对象函数方法4.1 以上代码并不是最优方案,给程序每创建一个新变量,就增加了变量污染的一层风险.
函数的执行方式: call 和apply方式
5. 构造函数 与 普通函数
构造函数和普通函数的区别:
没有区别,就看使用,new就是构造函数,函数()就是普通函数调用
6. 函数的各种执行方式
1. 普通函数调用(包括匿名函数自调用)
2. 构造函数执行new函数
3. 作为对象的成员方法执行
4. 通过call或apply执行 call和apply使得函数执行的时候可以控制变量污染的风险
7. this
1. 在函数/方法里this代表调用该函数/该方法的当前对象
2.在事件中,this代表元素节点对象
divnode.onclick = function(){alert(this.value)}
3.代表window
4.可以任意代表其他对象 在call和apply使用的时候,可以任意设置被执行函数内部this的代表
8. 获取构造器
构造器: 使用什么元素实例化的对象,元素就称为该对象的构造器
var cat = Animal() //Animal就称为cat对象的构造器
对象.constructor; //获得构造器
9.继承关键字 prototype
10.对象遍历
11. 复制继承
特点: 继承非常灵活,可以根据实际强开需要为对象去继承成员
如果有的对象不要额外成员,就不继承即可
同时该继承允许同时继承"多个对象"
网友评论