JS对象的分类
例:求下面正方形的面积
let qquare = {
width = 5,
getArea(){
return this.width*this.width
}
getLength(){
return this.width*4
}
}
这里运用到this,后面我们对它进行单独讨论。
new操作符
new x()自动做了四件事
- 自动创建空对象
- 自动为空对象关联原型,原型地址指定为x.prototype
- 自动将空对象作为this关键字运行构造函数
- 自动return this
以上就是JS之父的爱
构造函数x
- x函数本身负责给对象本身添加属性
- x.prototype对象负责保存对象的共有属性
代码的规范
- 大小写
- 所有构造函数(专用于创建对象的函数)首字母大写
- 所有被构造出来的对象,首字母小写
词性
- new后面的函数,使用名词形式
如:new person()、new Object()
- 其他函数,一般使用动词开头 如:creatSquare(s)、creatElement('div')
原型公式
对象.proto===其构造函数.prototype 自己总结的,大家可以观摩
类型vs类
- 类型是JS数据的分类,有7种
- 类是针对对象的分类,有无数种。(常见得:Array、Function、Date等等)
数组对象
定义一个数组
let arr = [1,2,3]
等价于
let arr = new Array(1,2,3)//元素为123
let arr = new Array(3)//该数组的长度为3
数组对象的自身属性
'0','1','2''lengtn' 注意:这些都是属性名,均为字符串不是数字
数组对象的共用属性
- push
- pop
- shift
arr.shift()与之对应的arr.unshift(x)。他们分别表示把第一位提出来(有删除的意思)和把x添加到数组的第一位。
- join 例
let arr = new Array(1,2,3)
arr.join(连)
arr//[1连2连3]
函数的对象
let fn = new Function('x','y', 'return x+y' )
函数对象的自身属性
- name
- length
函数对象共用属性
- call
- apply
- bind
JS终极一问
- Window可通过constructor属性看出构造者,即:Window.constructor
- Window.Object是谁构造的:Window.Function
- Window.Function是谁构造的:浏览器构造的Function,然后指定他的构造者是他自己
未完,下一篇继续更新这部分类容,希望大家一起讨论。