对象需要分类吗?
有很多对象拥有一样的属性和行为,需要把他们分为同一类,如:square1 和 square2 。这样创建类似对象时候就很方便。
但是还有很多对象拥有其他的属性和行为所以就需要不同的分类。比如 Square / Circle / Rect 就是不同的分类 ,Array / Function 也是不同的分类,而 Object 创建出来的对象,是最没有特点的对象。
数组对象
定义一个数组
let arr = [1,2,3]
let arr = new Array(1,2,3)//元素为1,2,3
let arr = new Array(3)//长度为3
数组对象的自身属性
‘0’ / ‘1’ / ‘2’ / ‘length’
注意,属性名没有数字,只有字符串
数组对象的共用属性
‘push’ / ‘pop’ / ‘shift’ / ‘unshift’ / ‘join’
MDN Array
函数对象
定义一个函数
function fn (x, y) {return x+y}
let fn2 = function fn(x, y){return x+y}
let fn = (x,y) => x+y
let fn = new Function (‘x’, y’, ‘return x+y)
函数对象自身属性
‘name’ / ‘length’
函数对象共用属性
‘call’ / ‘apply’ / ‘bind’
window 是谁构造的
window.Object 是谁构造的
window.Function 构造的
因为所有函数都是 window.Function 构造的
window.Function 是谁构造的
window. Function 构造的
因为所有函数都是 window. Function 构造的
自己构造的自己?并不是这样,这是「上帝」的安排
浏览器构造了 Function,然后指定它的构造者是自己