美文网首页
关键字 this 笔记

关键字 this 笔记

作者: json_jie | 来源:发表于2017-07-28 15:10 被阅读5次

函数是对象,对象可以有属性和方法

this 的功能
在 ECMAScript 中,要掌握的最重要的概念之一是关键字 this 的用法,它用在对象的方法中。关键字 this 总是指向调用该方法的对象,例如:
var oCar = new Object;
oCar.color = "red";
oCar.showColor = function() {
alert(this.color);
};

oCar.showColor(); //输出 "red"

在上面的代码中,关键字 this 用在对象的 showColor() 方法中。在此环境中,this 等于 oCar。下面的代码与上面的代码的功能相同:
var oCar = new Object;
oCar.color = "red";
oCar.showColor = function() {
alert(oCar.color);
};

oCar.showColor(); //输出 "red"

使用 this 的原因
为什么使用 this 呢?因为在实例化对象时,总是不能确定开发者会使用什么样的变量名。使用 this,即可在任何多个地方重用同一个函数。请思考下面的例子:
function showColor() {
alert(this.color);
};

var oCar1 = new Object;
oCar1.color = "red";
oCar1.showColor = showColor;

var oCar2 = new Object;
oCar2.color = "blue";
oCar2.showColor = showColor;

oCar1.showColor(); //输出 "red"
oCar2.showColor(); //输出 "blue"

在上面的代码中,首先用 this 定义函数 showColor(),然后创建两个对象(oCar1 和 oCar2),一个对象的 color 属性被设置为 "red",另一个对象的 color 属性被设置为 "blue"。两个对象都被赋予了属性 showColor,指向原始的 showColor () 函数(注意这里不存在命名问题,因为一个是全局函数,而另一个是对象的属性)。调用每个对象的 showColor(),oCar1 输出是 "red",而 oCar2 的输出是 "blue"。这是因为调用 oCar1.showColor() 时,函数中的 this 关键字等于 oCar1。调用 oCar2.showColor() 时,函数中的 this 关键字等于 oCar2。
注意,引用对象的属性时,必须使用 this 关键字。例如,如果采用下面的代码,showColor() 方法不能运行:
function showColor() {
alert(color);
};

如果不用对象或 this 关键字引用变量,ECMAScript 就会把它看作局部变量或全局变量。然后该函数将查找名为 color 的局部或全局变量,但是不会找到。结果如何呢?该函数将在警告中显示 "null"。

相关文章

  • RobotFramework学习02-基础关键字

    RobotFramework学习笔记目录 本文包含内容: 基础关键字 基础关键字(高级用法) 内置关键字查询 关键...

  • Java中的this关键字

    学习笔记:thisthis关键字修饰的变量指代成员变量 1、this关键字this关键字修饰的变量指代成员变量 方...

  • java final 关键字

    [toc] final关键字 - think in java 笔记 之前对于final关键字只是大概了解,平时编码...

  • this 关键字的理解--java学习笔记

    this 关键字的理解--java学习笔记 彻底理解this 关键字的含义 this关键字再java里面是一个我认...

  • 搜索 Evernote 笔记的小技巧

    1. 只搜索笔记的标题 如果想只搜索标题中包含某些关键字的笔记,例如,只搜索标题中包含 Ruby 的关键字,而不管...

  • 函数相关

    (记录笔记) this关键字 什么是 this?this 是 JavaScript 的一个关键字,一般指向调用它的...

  • RobotFramework学习07-用户关键字和资源文件

    RobotFramework学习笔记目录 用户关键字 通常的从测试库(也就是python文件)里面提供的关键字,我...

  • 深入理解volatile关键字

    Java多线程学习笔记 1. volatile关键字介绍 1.1 初始volatile关键字 下面是一个Demo,...

  • 同传笔记

    小五每日一更第47篇 同传笔记:文字直播 总图 单篇分享笔记: 关键字+内化笔记 逐字稿+内化笔记 使用工具:石墨...

  • Evernote Search快速入门

    stack: $笔记本组$notebook:$笔记本$tag:$标签$以某个关键字开头分隔符:space Ever...

网友评论

      本文标题:关键字 this 笔记

      本文链接:https://www.haomeiwen.com/subject/hkxflxtx.html