美文网首页
普通函数和构造函数

普通函数和构造函数

作者: 你期待的花开 | 来源:发表于2018-11-14 18:02 被阅读6次

一、区别:

例如 调用 function test() { }

构造函数 :
  1. new test( ) 用new关键字调用。
  2. this指向的是构造出的新对象。
  3. 构造函数是不需要用return显式返回值的,默认会返回this,也就是新的实例对象。
  4. 构造函数一般是首字母大写。
普通函数:
  1. test( ) 不需要用new关键字调用。
  2. 函数内部的this指向调用函数的对象(如果没有对象调用,默认是window)。
function greeting(){
    this.name="world";
    console.log("hello "+this.name);
}
greeting(); //hello world
console.log(window.name); //world
  1. 返回值由return语句决定。
  2. 普通函数遵照小驼峰式命名法。
二、构造函数的返回值:

有一个默认的返回值,新创建的对象(实例);
当手动添加返回值后(return语句):
1. 返回值是基本数据类型-->真正的返回值还是那个新创建的对象(实例)。
2. 返回值是复杂数据类型(对象)-->真正的返回值是这个对象。

例子

  function foo() {
    var f2 = new foo2();
    console.log("f2",f2); 
    console.log("foo--> this",this);
    return true;
  }
  function foo2() {
    console.log("foo2--> this",this); 
    return {a: 3};
  }
  var f1 = foo();
  console.log("f1",f1);
image

Object.create()方法

构造函数作为模板,可以生成实例对象。但是,有时候拿不到构造函数,只能拿到一个现有的对象,我们希望以现有的对象作为模板,生成新的实例对象,这时可以使用Object.create()方法。

var person1 = {
  name: '张三',
  age: 38,
  greeting: function() {
    console.log('Hi! I\'m ' + this.name + '.');
  }
};

var person2 = Object.create(person1);

person2.name // 张三
person2.greeting() // Hi! I'm 张三.

上面代码中,对象person1是person2的模板,后者继承了前者的属性和方法。

相关文章

  • js中普通函数和构造函数的区别

    1、构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写 2、构造函数和普通函数的区别在于...

  • 构造函数与普通函数:

    1、构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写 2、构造函数和普通函数的区别在于...

  • JavaScript中的this

    自运行函数其实是window对象调用它!函数分普通函数和构造函数,普通函数的this指向window,构造函数的t...

  • Dart整理

    Dart构造函数 普通构造函数和命名构造函数 默认构造函数一个类没有声明构造函数,默认会有一个无参构造函数,声明了...

  • 原型链,对象,构造函数之间的一些联系

    构造函数: 构造函数跟普通函数没什么区别,都是由function定义的,为了和普通函数做区别,一般构造函数首字母大...

  • 普通函数和构造函数

    普通函数与构造函数的区别 1.普通函数默认返回值是undefined,构造函数返回一个实例的对象2.普通函数与构造...

  • 普通函数和构造函数

    普通函数与构造函数的区别 1.普通函数默认返回值是undefined,构造函数返回一个实例的对象 2.普通函数与构...

  • 普通函数和构造函数

    普通函数与构造函数的区别 1.普通函数默认返回值是undefined,构造函数返回一个实例的对象2.普通函数与构造...

  • 普通函数和构造函数

    普通函数与构造函数的区别 1.普通函数默认返回值是undefined,构造函数返回一个实例的对象2.普通函数与构造...

  • 普通函数和构造函数

    普通函数与构造函数的区别 1.普通函数默认返回值是undefined,构造函数返回一个实例的对象2.普通函数与构造...

网友评论

      本文标题:普通函数和构造函数

      本文链接:https://www.haomeiwen.com/subject/hdqgvftx.html