对象进阶

对象进阶

1.this

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

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

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

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

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

解决this指向问题:

方式一:备份this

方式二:使用箭头函数

2.call apply bind

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

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

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

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

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

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

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

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

对象名.属性名

对象名["属性名"]

//定义一个手机对象letphone={name:"小米10",color:'红色',size:'1000*200*500',price:'2999'}//转成下面的字符串//"name=小米10&color=红色&size=1000*200*500&price=2999"

for in 循环,可以循环出对象里面的所有的key,(key就是属性名)

在ES6中新增了获取对象所有key的方法 -> ECMAScript2015 其实就是最新版本的javascript标准

Object.keys(指定的对象),该方法可以获取指定对象的所有key,返回值是一个数组

Object.values(指定的对象),该方法可以获取指定对象的所有的value,返回值是一个数组

4.将字符串转为对象

//定义一个字符串letstr="name=小米10&color=红色&size=1000*200*500&price=2999"//转成一个对象{name:"小米10",color:'红色',size:'1000*200*500',price:'2999'}

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

推荐阅读更多精彩内容

  • 一、初识JavaScript JavaScript 是 Web 的编程语言。 所有现代的 HTML 页面都使用 J...
    是阳仔啊阅读 570评论 0 0
  • Day07的课程要点记录详细教程地址:Day7 - 面向对象编程进阶 一、静态方法、类方法、属性方法 1.1 静态...
    乘风逐月阅读 424评论 0 0
  • ### 动态添加属性: 1. `对象.属性名=xx`的形式。 2. 通过`setattr(对象,属性名,这个属性对...
    97833632c0c7阅读 298评论 0 0
  • 一.普通对象与函数对象 js中万物皆对象!但对象也是有区别的。分为普通对象和函数对象,Object 、Functi...
    Speng阅读 809评论 0 3
  • 如果你自以为会对象深拷贝的话,快来看看这篇对象进阶的文章吧~~~ 1.创建对象 对象创建的三种方式var obj ...
    learninginto阅读 577评论 6 10