呃呃呃,又打开js高程了,为啥有一种严肃的心情捏?!今天看了创建对象这一节,写些笔记,巩固一下,有时间会继续补充的。
我们知道,想要操作这些对象,首先你得有对象,对象哪里找?当然是自己创建呗!
说一下比较常用的3种创建对象的方式。
1、字面量
var obj1={x:1,y:2};
var obj2={
x:1,
y:2,
z:{
a:1,
b:2
}
};
2、new操作符
了解这部分建议先了解原型链,可以看看这个阮大大的js
也可以看看慕课的这个
3、Object.create方法
解释一下,Object.create是系统内置的函数,这个函数接受一个参数,这参数一般是对象,调用它会返回一个新创建的对象,并且会让对象的原型指向这个参数。
需要指出的是,{x:1}
是用字面量创建的对象,它是有原型的,它的原型是Object.prototype,所以typeof obj.toString
返回function,因为Object.prototype上面有这个方法,注意不要写成typeof obj.toString()
哈~
再啰嗦一下,并不是所有对象都有toString,因为并不是所有对象的原型链上都有Object.prototype。如果我们给Object.create方法传入参数null,这个对象的原型是null,那么就没有任何方法了。
由于是原型链上继承的,不是对象本身的属性,所以obj.hasOwnProperty('X)
返回false。
其实网上关于创建对象的文章挺多的,感觉这不错,推荐这个JS创建对象的几种方式,不想看高程的同学看看这个呗~