十二.对象进阶

十二.对象进阶

1.this

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

方法里面的this,指向方法的调用者

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

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

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

解决this指向问题:

方式一:备份this

方式二:使用箭头函数

2.call apply bind

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

1.使用call()改变方法里面,this的指向

call()方法的第一个参数必须是指定的对象,方法的原有参数,挨个放在后面

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

3.使用bind(),也可以改变方法里面this的指向,用法给call()一样

call()是直接运行方法,bind()是返回新的方法,然后再重新调用。

3.将一个对象转为字符串

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

对象名.属性名

定义一个对象

对象名["属性名"]

练习:先定义一个对象

将它转成下面的字符串"name=小米10&color=红色&size=1000*200*500&price=2999"

方法一:定义一个空数组

for in 循环,可以遍历出对象的所有key(key就是属性名称),把这个值代入数组里面,并在属性名和属性值之间加一个'=',最后在这个字符串中,用‘&’隔开每个字符

方式二:

 Object.keys方法,用于返回对象的所有属性名,返回值是一个数组,Object.values,用于返回对象的所有属性值,返回值是一个数组

方法二的简化写法

4.将字符串转为对象


把上面的字符串转成对象

5.统计字符串中每个字符串出现的次数

①先定义一个数组

②创建一个空对象

③然后循环上面那个数组

根据字符的名称,查找对象中,有没有对应的属性。如果有,对应的属性值加1,如果没有,添加这个属性,属性值赋为1


找到出现次数最多的字符串,并显示出现多少次

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

推荐阅读更多精彩内容