Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JavaScript理解call、apply #7

Open
qppq54s opened this issue Apr 16, 2019 · 0 comments
Open

JavaScript理解call、apply #7

qppq54s opened this issue Apr 16, 2019 · 0 comments

Comments

@qppq54s
Copy link
Owner

qppq54s commented Apr 16, 2019

网上搜索call和apply的使用方法,大多数时候总是把这两个方法搞混,所以我尝试用一些取巧的方式去记忆。

call和apply的共同点:

  1. 第一个参数传入的是执行上下文的对象,也就是改变方法的this指向到这个参数。
  2. 都会执行函数

以上都不理解?没事,看代码

function getName() {
  console.log(this.name)
}
getName(); // undefined
getName.call({name: 'qp'}); // qp
getName.apply({name: 'qp'}); // qp

call和apply的不同点:

  1. call方法后面的参数是一个列表,而apply方法第二个参数是array(数组)
    如果容易记混的话,就看apply和array长得特别像,就不会搞错了。

看代码

function getName(...param) {
  console.log(param)
}
getName(); // undefined
getName.call({}, 'qp', 'qp'); // ['qp', 'qp']
getName.apply({}, ['qp', 'qp']); // ['qp', 'qp']
@qppq54s qppq54s changed the title JavaScript理解call JavaScript理解call、apply Apr 16, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant