2018-05-14 构造函数和普通函数

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

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

2.在函数调用时,

//构造函数
function Egperson (name,age) {
    this.name = name;
    this.age = age;
    this.sayName = function () {
        alert(this.name);
     }
}
var person = new Egperson('mike','18'); //this-->person
person.sayName();  //'mike'


//普通函数
function egPerson (name,age) {
    this.name = name;
    this.age = age;
    this.sayName = function () {
        alert(this.name);
     }
}
egPerson('alice','23'); //this-->window
window.sayName();  //'alice'

可以看出:

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

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

3.返回值

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,679评论 0 5
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,212评论 0 21
  •   面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意...
    霜天晓阅读 2,158评论 0 6
  • 普通创建对象和字面量创建对象不足之处:虽然 Object 构造函数或对象字面量都可以用来创建单个对象,但这些方式有...
    believedream阅读 2,445评论 2 18
  • 湛江是广东南端的一个地级市,相对而言是比较偏僻的一个地方。我在湛江呆了十年,除了家乡,这是我人生暂且来说呆得最长时...
    伍海东阅读 898评论 0 3