JavaScript构造函数学习:js中构造函数与普通函数的区别

构造函数不仅只出现在JavaScript中,它同样存在于很多主流的程序语言里,比如c++、Java、PHP等等。与这些主流程序语言一样,构造函数在js中的作业一样,也是用来创建对象时初始化对象,并且总与new运算符一起使用。

在js中,构造函数与普通函数的区别不是很大。接下来就主要讲讲两者的区别。

1.在命名规则上,构造函数一般是首字母大写,普通函数则是遵照小驼峰式命名法。

2.在函数调用时,

复制代码

 1 //构造函数
 2 function Egperson (name,age) {
 3     this.name = name;
 4     this.age = age;
 5     this.sayName = function () {
 6         alert(this.name);
 7      }
 8 }
 9 var person = new Egperson('mike','18'); //this-->person
10 person.sayName();  //'mike'
11 
12 
13 //普通函数
14 function egPerson (name,age) {
15     this.name = name;
16     this.age = age;
17     this.sayName = function () {
18         alert(this.name);
19      }
20 }
21 egPerson('alice','23'); //this-->window
22 window.sayName();  //'alice'

复制代码

可以看出:

1)构造函数内部会创建一个实例,调用普通函数时则不会创建新的对象。

2)构造函数内部的this指向是新创建的person实例,而普通函数内部的this指向调用函数的对象(如果没有对象调用,默认为window)

3.返回值

返回值方面,对于构造函数而言,如果返回值是基本数据类型,那么返回值就是this指向的实例;如果是复杂数据类型,那么返回值为对象(不知道这句话对不对)

 

刚刚看了一篇文章感觉深受感动,看完之后,真有拨云见日的感觉!我把链接放在下面,感兴趣的可以去看看,博主是以故事的形式讲述了JavaScript的对象问题,文笔简洁却不失趣味,非常易懂~

http://www.cnblogs.com/aishangJava/p/7232680.html

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值