码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript中构造函数

时间:2017-02-03 13:34:18      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:.com   环境   检测   修改   声明   对象   meta   编码   script   

构造函数:函数的另一种执行方法,执行后创建对象,并创建原型对象。

原型链:对象访问构造函数的指针。

Function函数:函数对象。

Object函数:所有创建对象的祖辈对象,也是由Function对象实现的。

构造函数的特性:

        1.构造函数声明时,语法与普通函数的完全一致,
        2.在函数体中this指针不同
        3.构造函数和普通函数相比,调用方式不同
        4. 构造函数一般用作创建一个类,遵循C#的编码规范,首字母大写。

 

运行下面的代码(并跟踪Func):

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
	       debugger;
			function Fun(){
				
			}
			Fun();//普通函数的条用方式
			var fun=new Fun() //构造函数的调用方法
		</script>
	</head>
	<body>
	</body>
</html>

 效果:

技术分享

检测Fun.prototype的类型:

技术分享

查看fun:

技术分享

用普通函数调用测试this(程序没有对this包含引用,出现undefined):

技术分享

给this赋值(在程序体中必须引用this 才有值):

技术分享

 运行如下的代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
	       debugger;
			function Fun(){
				var that1=this;
				innerFun();
				function innerFun(){
					
					var that2=this;
						
				}
			}
			Fun.userName=‘sunliyuan‘;
			Fun.innerFun2=function(){
				var that3=this;
				debugger;
			}
			debugger;
			Fun.innerFun2();
			Fun();//普通函数的条用方式
			
			
		</script>
	</head>
	<body>
	</body>
</html>

技术分享

技术分享

 

运行代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
	       debugger;
			function Fun(){
				this.id=1;
				this.name=‘sunliyuan‘;
			}
			
			//Fun();//普通函数的条用方式
			var fun=new Fun() //构造函数的调用方法
		</script>
	</head>
	<body>
	</body>
</html>

 

在构造函数中的this:

技术分享

以上为对this在普通函数和构造函数与中的不同:

             1.this在其他语言中代表当前对象,在js中非常灵活
             2.this 是跟当前函数的运行环境有关
             3. 对于普通函数来说,在函数体中this代表调用当前函数的运行环境对象
             4. 对于构造函数来说this 代表当前构造函数创建的对象

             5.在全局环境中this代表全局环境(window对象)

 

 构造函数:new Fun的执行过程:

      1.创建一个空obj对象

      2.空对象的原型链(__proto__)指向了函数对象prototype对象

      3.修改函数的this指针为新创建的对象引用。

      4.执行函数体(普通函数只执行第四步)

技术分享

 

JavaScript中构造函数

标签:.com   环境   检测   修改   声明   对象   meta   编码   script   

原文地址:http://www.cnblogs.com/sunliyuan/p/6362409.html

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