1.debug 打断点
2.this
解析器每次都会向函数内部传递一个隐含的参数
fun()以函数形式调用 this指向window
obj.fun() 以方法的形式调用 this指向调用方法的那个对象obj
3.工厂方法创建对象
4. 构造函数
普通函数是直接调用 加new就是构造函数 两者只是调用方式不同
(1.立即创建一个对象 2.将新建的对象设置为函数中的this 用this来引用新建的对象 3.逐行执行代码 4将新建的对象作为返回值)
使用同一个构造函数创建的对象 这个构造函数称为 类 我们通过一个构造函数创建的对象称为该类的实例 var per(实例) = new Person(类)(xx)
instanceof(检查一个对象是否是一个类的实例) 返回的是布尔值
5.原型
1.每创建一个函数 解析器就会向函数myClass添加一个prototype属性 对应原型对象 针对MC new构造函数调用就会有一个_prpto_指向上面的prototype
这里myClass原型对象下的prototype就相当于一个公共区域 mc 这个时候也能通过prpto访问到 先在mc自身中寻找 没有就会去myclass中找
2.xxx.hasOwnProperty(‘属性’)检查对象自身是否有这个属性 返回布尔值
6.垃圾回收
7. 数组
1.数组 arr[1]=10 也是一个对象 普通对象使用字符串作为属性名 数组是用索引来做
对于连续数组使用length可以获取最大数组长度(元素的个数)
对于非连续数组使用length会获取到数组的最大索引+1
arr【arr.length】= 20 向数组最后一位添加元素
2.创建数组 var arr = 【 XXXX 】 数组元素是可以任意的数据类型也可以是对象 函数
3.数组遍历
4.ForEach 也可以遍历数组
5数组方法