《javascript启示录》笔记(上)
2018-12-12 本文已影响0人
月半女那
1. javascript对象
a. 在javascript中,方法是包含Function()对象的属性,其目的是对函数内部对象进行操作
b. 构造函数返回的对象被称为实例
c. js 原生对象构造函数 (Array,Object,String,Number,Boolean,Function,Date,RegExp,Error)
这样的复制 其实是对c对象地址的引用,所以其实c,d其实指向的都是内存中的同一个对象,所以只要一方修改,另一方也会修改
对象只有引用相同的对象是才会相等,即时有两个对象他们中的属性完全相等但是使用 ===也是不相等的
对比.png
e. 可以通过instanceof 来确定一个对象是否事是特定构造函数的实例 image.png
2. 对象和属性
a. hasOwnProperty:验证对象属性是否是自身的属性而不是来自原型链
in:检查一个对象是否包含属性(不仅是自身的还包含原型链上的)
image.png
b. for...in 遍历对象属性
image.png缺点:1. 它不仅会遍历对象的自身属性还会遍历原型链的属性,所以可以通过hasOwnProperty方法过滤
2. 访问属性的属性斌不是循环内部定义的顺序也不是定义属性的顺序
3. 只能遍历可枚举属性
3. Object()
a. 所有对象都继承自Object.prototype,Object.prototype的任何内容都将出现在for..in循环和原型链中
4. Function()
a. 函数是一个对象,因此函数也是一个值
b. arguments :是所有函数中都可用的局部变量,可以通过arguments.length来确定传递给函数参数的个数
arguments.callee指向当前执行的函数
c. this : 当函数在全局作用域中定义时,this表示window对象,当被调用时,指向调用方
d. 可以通过return 来取消函数执行
e. 定义函数的四种方法
f. call,apply https://www.jianshu.com/p/350ddbefe0e7
5. head对象
6. this关键字
a. 可以通过call,apply改变this指向问题
c. 在使用new调用构造函数的时候,this指向‘即将创建的对象’,如果不使用则表示调用函数的上下文 image.png
d.如果在构造函数的prototype属性中使用this,this引用调用方法的实例,如果this指向的实例或者对象不包含引用属性,则会在原型链上查找属性
image.png