JavaScript对象

对象

如果 student.name ,那么student就是对象,name是student的属性

如果 student.study(),那么student就是对象,study()是student的方法

对象就是拥有一组属性和方法的集合

定义对象有两种方式:1.采用字面量赋值方式直接定义。

图1

2.采用构造函数的方式new一个对象

(1)可以直接new一个Object对象

图2

(2)可以定义一个构造函数,再出new这个构造函数的对象

图33

对象进阶

this

构造函数里面的this,用于给类定义成员(属性和方法)(图4)

方法里面的this,指向方法的调用者(图5)

箭头函数中没有this,如果在箭头函数中使用了this,会向外层寻找this的指向(图6)

如果所有的外层都没有this,最终会指向window对象

注意:用于var定义的成员(变量和方法)都会成为window对象的成员

解决this指向问题:

方式一:备份this

方式二:使用箭头函数

图4
图5
图6

call apply bind

call apply bind 更改方法里面this的指向

1.使用call()改变方法里面,this的指向。call()方法的第一个参数必须是指定的对象,方法的原有参数,挨个放在后面(图7)。

2.使用apply(),也可以改变方法里面this的指向,第一个参是指定的对象,方法的原有参数,统一放到第二个数组参数中(图8)。

3.使用bind(),也可以改变方法里面this的指向,用法跟call()相同(图9)。但是call()是直接运行方法,bind()是返回新的方法,然后再重新调用。

图7
图8
图9


将对象转为字符串

获取对象的属性值,有两种方式:

1.对象名.属性名

2.对象名["属性名"]

将对象转为字符串的方法1:for in 循环,可以循环出对象里面的所有的key,(key就是属性名)

图10

将对象转为字符串的方法2:Object.keys(指定的对象),该方法可以获取指定对象的所有key,返回值是一个数组                                                                                                   Object.values(指定的对象),该方法可以获取指定对象的所有的value,返回值是一个数组

图11

将字符串转为对象

图12
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容