码迷,mamicode.com
首页 > Web开发 > 详细

js面向对象

时间:2015-07-12 00:10:33      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

  对应于智能社26课。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
	<script>
		var a = [23,‘we‘,153];
		a.show = function(){
			alert(‘we‘);	
		}
		a.show();
		console.log("a.show 1_-:"+a.show);/*
						     a.show 1_-:function (){
							 alert(‘we‘);	
							}
						  */
		console.log("a.show 2_-:"+typeof a.show);  // a.show 2_-:function
		console.log("a.show 3_-:"+typeof a.show());// a.show 3_-:undefined
	</script>
</head>

<body>
</body>
</html>

  1.一个对象如果有某个方法属性,那上面的代码作为例子,如果要调用这个的话,直接a.show()这种方式就可以。

     2.如果要看这个属性,则只要通过a.show的方式,而不需要加"()";

  

通过这小段程序的调试,我们可以知道,
1.一个对象(指的变量a)的属性或者方法属性,我们访问的时候都是通过a.属性的方式,如a.m,a.show。
2.a.show和a.show()的含义是不同的,前者是访问属性,如就和a.m = "wer"一样,
a.show = function(){alert(‘we‘);} ,而a.show()的含义是执行show这个
方法属性里的方法的具体代码,这个例子中就是直接在页面上弹出‘we‘字样,因此如果想通过下面这种方 式console.log(‘a.show():‘+a.show())
来查看a.show()到底是什么,那么得到的结果就是 undefined。我个人的理解是这样的,
console.log(‘a.show:‘+a.show()) ,首先会执行a.show(),即前面讲的执行这个show这个方法属性里的具体方法,即弹出‘we‘,然后执行console.log()代码,这个时候浏览器会认为a.show()是访问点“.”后面的属性即show()这个属性,而通过右上角的调试栏里的代码显示,对象a只有show这个属性,而没有show()这个属性,因此会返回值是undefined。
总结:a.show()作为单独的一行代码,浏览器则直接执行function show(),而a.show()本身作为其他代码中的一段的时候,那么会先执行function show(),然后访问把show()当作一个属性来访问。

 

  

js面向对象

标签:

原文地址:http://www.cnblogs.com/Sunnor/p/4639634.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!