首页 > Web开发 > 详细

你不知道的JS系列 ( 17 ) - 为什么使用 this

时间:2020-03-02 10:02:14      阅读:88      评论:0      收藏:0      [点我收藏+]
var me = {
  name: ‘Kyle‘
};
var you = {
  name: ‘Reader‘
}
function identify(){
  return this.name.toUpperCase();
}
function speak(){
  var greeting = "Hello, I‘m " + identify.call(this);
  console.log(greeting);
}
identify.call(me); // KYLE
identify.call(you); // READER

speak.call(me); // hello, 我是KYLE
speak.call(you); // hello, 我是READER

这段代码可以在不同的上下文对象(me 和 you)中重复使用函数 identify() 和 speak(),不用针对每个对象编写不同版本的函数。如果不使用 this,那就需要给 identify() 和 speak() 显式传入一个上下文对象。

var me = {
  name: ‘Kyle‘
};
var you = {
  name: ‘Reader‘
}
function identify(context){
  return context.name.toUpperCase();
}
function speak(context){
  var greeting = "Hello, I‘m" + identify(context);
}
identify(you); // READER
speak(me); // hello, 我是KYLE

随着你的使用模式越来越复杂,显示传递上下文对象会让代码变得越来越混乱,使用 this 则不会这样。this 提供了一种更优雅的方式来隐式“传递”一个对象引用,因此可以将 API 设计得更加简洁并且易于复用。



你不知道的JS系列 ( 17 ) - 为什么使用 this

原文:https://www.cnblogs.com/wzndkj/p/12393689.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!