下载此文档

详解Javascript 中的this指针.doc


文档分类:IT计算机 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
前言
Javascript是一门基于对象的动态语言,也就是说,所有东西都是对象,一个很典型的例子就是函数也被视为普通的对象。Javascript可以通过一定的设计模式来实现面向对象的编程,其中this “指针〞就是实现面向对象的一个很重要的特性。但是this也是Javascript中一个非常容易理解错,进而用错的特性。特别是对于接触静态语言比拟久了的同志来说更是如此。
例如说明
我们先来看一个最简单的例如:
Js代码
<;script type=";text/javascript";>;
var name = ";Kevin Yang";;
function sayHi(){
alert(";你好,我的名字叫"; + name);
}
sayHi();
<;/script>;
<;script type=";text/javascript";>;
var name = ";Kevin Yang";;
function sayHi(){
alert(";你好,我的名字叫"; + name);
}
sayHi();
<;/script>;
这段代码很简单,我们定义了一个全局字符串对象name和函数对象sayHi。运行会弹出一个打招呼的对话框,“你好,我的名字叫Kevin Yang〞。
我们把这段代码稍微改一改:
Js代码
<;script type=";text/javascript";>;
var name = ";Kevin Yang";;
function sayHi(){
alert(";你好,我的名字叫"; + );
}
sayHi();
<;/script>;
<;script type=";text/javascript";>;
var name = ";Kevin Yang";;
function sayHi(){
alert(";你好,我的名字叫"; + );
}
sayHi();
<;/script>;
。运行结果和上面一摸一样。这说明引用的也还是全局的name对象。
开头我们不是说了,函数也是普通的对象,可以将其当作一个普通变量使用。我们再把上面的代码改一改:
Js代码
<;script type=";text/javascript";>;
var name = ";Kevin Yang";;
function sayHi(){
alert(";你好,我的名字叫"; + );
}
var person = {};
= sayHi;
();
<;/script>;
<;script type=";text/javascript";>;
var name = ";Kevin Yang";;
function sayHi(){
alert(";你好,我的名字叫"; + );
}
var person = {};
= sayHi;
();
<;/script>;
这一次,我们又创立了一个全局对象person,并将sayHi函数对象赋给person对象的sayHello属性。运行结果如下:
这一次打招呼的内容就有点无厘头了,我们发现已经变成undefined了。这说明,在sayHello函数内部执行时已经找不着对象了。如果我们重新定义person对象,在其上面加上一个name属性又会怎么样呢?
var person = {name:";Marry";};运行代码发现打招呼的“人〞变了:
是不是看出点道道了呢?
判别this指针的指导性原那么
在Javascript里面,this指针代表的是执行当前代码的对象的所有者。
在上面的例如中我们可以看到,第一次,我们定义了一个全局函数对象sayHi并执行了这个函数,函数内部使用了this关键字,那么执行this这行代码的对象是sayHi〔一切皆对象的表达〕,sayHi是被定义在全局作用域中。其实在Javascript中所谓的全局对象,无非是定义在window这个根对象下的一个属性而已。因此,sayHi的所有者是window对象。也就是说,在全局作用域下,你可

详解Javascript 中的this指针 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人aena45
  • 文件大小52 KB
  • 时间2022-01-10
最近更新