文档章节

面向对象的this的使用

老鸟的空间
 老鸟的空间
发布于 2014/06/28 17:42
字数 250
阅读 15
收藏 0

this:当前的方法属于谁,this就是指谁    除了在函数面前有new的时候

function man(){
		this.name='zhang';
		this.age=30;
		alert(this);
	}
	man()// DOMwindow
	function man2(){
		this.name='zhang';
		this.age=30;
		alert(this);
	}
	new man2()// object
function man2(){
		var this = new Object();   //虽然在JS里面不能这么写,但是差不多是这个意思,创建一个新的对象。
		this.name='zhang';
		this.age=30;
		  return this;             //返回this
		alert(this);
	}
	new man2()// object

亚当学院说的

JavaScript编程语言中,this并不一定是函数本身所属的对象。this只是在任意

object和function元素结合时的一个概念。

window.onload=function(){

   document.onclick=function(){

alert(this);//HTMLDocument

}

}

  <input type="button" value="test" id="btn" />

    <script>document.getElementById('btn').onclick=function(){

console.log(this);//<input type="button" value="test" id="btn">

}

</script>

    <input type="button" value="test" id="btn" />

    <script>

window.onload=function(){

_this = this;

document.getElementById('btn').onclick=function(){

console.log(_this+"__"+this);//[object Window]__[object HTMLInputElement]

}

}

</script>


______________________________________________________________________________________________________________

function whoami(){
				console.log('im  '+ this.name + '  of  ' + typeof(this));
			}
			whoami();
			var zhang = {
				name:'zhangsan',
				show:whoami
			};
			zhang.show();
			var lisi = { name:'lisi'};
			lisi.show = whoami;
			lisi.show();
			whoami.call(zhang);
			zhang.show.call(lisi);
			lisi.show.call(zhang);
			/*whoami.name='whoami';
			whoami.whoami=whoami;
			whoami.whoami();
			*/
			({name:'test',show:whoami}).show();
	</script>


© 著作权归作者所有

共有 人打赏支持
老鸟的空间
粉丝 7
博文 79
码字总数 7683
作品 0
海淀
程序员
私信 提问
面向对象,更适合JavaScript

面向对象程序设计是软件开发中一个很庞大很复杂的话题,它并不是仅仅学会类、继承、封装、多态这些面向对象编程语法元素就表示掌握的,这些语法元素只是实现面向对象程序的工具, 就像砖块、...

陈宏鸿
05/07
0
0
面向对象数据库引擎--ojadb

面向对象数据库是对面向对象方法学的发展和运用,是面向对象方法学在数据库领域的具体实现。它以数据库原理为本,以面向对象开发语言为体,解决了面 向对象开发过程中对对象的持久化。面向对...

匿名
2009/03/16
856
0
Python-面向对象

(个人感觉真心不错 ,转过来一起学习一下 ) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分...

ala9981
2016/03/20
0
0
黑马程序员.bobo.DAY.6

/*静态:static用法:是一个修饰符,用于修饰成员(成员变量,成员函数),当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,可以直接被类名调用,类名.静态成员 static 特点:1,随着类的...

BobbyLou
2015/05/14
0
0
oJadb 发布 0.9.1

oJadb发布最新版本0.9.1。这个版本是第一个实现了roadmap基本功能的稳定版本。 面向对象数据库是对面向对象方法学的发展和运用,是面向对象方法学在数据库领域的具体实现。它以数据库原理为本...

EricHan
2009/11/18
241
0

没有更多内容

加载失败,请刷新页面

加载更多

Eos如何删除钱包

在使用Eos的keosd钱包软件时,如果要删除EOS中指定名称的钱包,最简单的办法是直接删除钱包文件,不过在删除钱包之前,需要先停止钱包软件的运行。 学习EOS应用开发要选这个:【EOS智能合约与...

geek12345
5分钟前
0
0
js操作时间

获取当前时间 function getSystemDate(){ var systemDate = new Date(); // 获取当年 var year = systemDate.getFullYear(); // 获取当月 (月+1是因为js中......

简心
12分钟前
0
0
区块链开发教程推荐

区块链的重要性已经毋庸置疑,但对大多数跃跃欲试的开发者而言,去中心化思想、非对称加密、共识算法等技术点的理解和运用,都是入门区块链开发的挑战。合适的区块链开发教程可以极大地缩短区...

笔阁
12分钟前
0
0
菜单menuView总结

1、FTPopOverMenu

_____1____
23分钟前
2
0
MyEclipse教程:Web开发——部署和测试Web项目

MyEclipse 在线订购年终抄底促销!火爆开抢>> MyEclipse最新版下载 本教程向用户展示了使用关联的Web项目创建Web片段项目的机制。用户还可以获得要检查的示例项目。在本教程中,用户将学习如...

电池盒
39分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部