js面向对象
时间:2023-3-1 22:15 作者:wen 分类: F2E
<script type="text/javascript">
//变量,内存
基础数据类型
引用数据类型
//三条定律一条链
一切皆对象
//在JavaScript中对象分为如下3类
1 内置对象,由ECMA实现,不依赖宿主环境的对象,这些对象在js程序执行之前就已经存在,例如:Object,Array,String,Number,Boolean,Date..
2 宿主对象,在浏览器端的js而言,宿主对象就是浏览器对象,例如:window,document,history,bom..
3 自定义对象
对象是属性的集合
//函数与方法的区别
1 方法本质就是函数,只不过它有一个家,它的家就是某一个对象.一般说这是谁家的方法.如果你不以说它的归属,那么,它就是一个函数.window
1 属性:本质也是变量,只不过它有家.window
2 变量:不属于某一个对象,则为变量.
对象是由函数创建的
1 数组是由函数创建的
2 函数是由函数创建的
3 基本数据类型是由函数创建的
4 对象是由函数创建的
原型链
1 每个函数都有一个prototype属性
2 每个对象都有一个__prote__属性
3 对象的__proto__属性指向创建这个对象的构造器的原型prototype
//属性的操作
对象.属性名
对象[属性名]
//原型链,作用域链
原型链:
构造函数可以继承一个对象
访问一个对象成员时,先在该对象身上访问,如果没有则去该对象的原型身上查找,这个查找的过程就是原型链
作用域链:
在函数内访问一个变量是,会先在当前函数内查找局部变量,如果没有则去上级查找全局变量,这个查找的过程就是作用域链
//面向对象3大特性
1 封装性
在构造函数里面通过this关键字声明的成员都是公共的,函数内部,函数外部都可以使用
2 继承性
在构造器中是通过原型继承实现的
3 多态性
多态就是多种姿态,同一个动作不同对象来实现,就会有不同的效果
继承注意事项
1 本身和继承的对象拥有同名称成员,则使用自己的成员
2 对象访问成员的优先级
1对象本身成员
2构造器成员
3构造器原型对象成员
this
this是一个对象,它的值是在代码运行时才确定的,它的值随时会变化
this出现在函数外部,它的值就是window,也就是说this指向window对象
this出现在函数内部
普通函数内部,this指向window对象,这个函数就属于window对象属性
this在对象的方法内部,指向的是该对象
调用函数之前加一个new的话,会创建一个新的对象,this指向的就是这个新的对象
call,apply
Apply与call的作用都是一样:更改函数内部的this,让它指向第一个参数.对象通过call,apply方法调用其他函数
语法:
函数名.call(thisObj,参数1,参数2,...)
函数名.apply(对象名,[参数1,参数2,...])
call,apply方法可将一个函数的对象上下文从初始的上下文改变为由thisObj指向的新对象
</script>
标签: javascript