zoukankan      html  css  js  c++  java
  • 普通函数与构造函数

    1、普通函数

    function normalFn(){
      console.log(this);  //window
      return "这是一个普通函数";
    }
    normalFn();
    

    2、构造函数(构造函数建议首字母大写,与普通函数区分开)

    function Animal(name){
      this.name= name;
    }
    Animal.prototype.sayName = function(){
      alert(this.name);  //狗
     console.log(this);  //Animal{name: "狗"}
    }
    var dog = new Animal("狗");
    dog.sayName();
    

    3、普通函数与构造函数的区别

    (1)、调用方式:构造函数使用new关键字调用

    使用new关键字调用发生了什么?

    a、第一步,创建一个空对象。var dog={}

    b、第二步,将构造函数Animal()中的this指向新创建的对象dog。

    c、第三步,将dog的_proto_属性指向Animal函数的prototype,创建对象和原型间关系

    d、第四步,执行构造函数Animal()内的代码。


    (2)、this:普通函数不建议使用this,普通函数的this指向window,这样无意间就会为window添加了一些全局变量或函数

    构造函数的this指向实例对象


    (3)、返回值:构造函数默认返回this即新的实例对象。也可以用return语句返回,返回值会根据return的类型有所不同,

    当构造函数里调用return时,分两种情况:

    a、return的是五种简单数据类型:String,Number,Boolean,Null,Undefined。

    这种情况下,忽视return值,依然返回this对象。

    b、return的是Object

    这种情况下,不再返回this对象,而是返回return语句的返回值


  • 相关阅读:
    SqlServer注意事项总结,高级程序员必背!
    C#语法——委托,架构的血液
    C#语法——泛型的多种应用
    C#——Nhibernate探索
    C#语法——await与async的正确打开方式
    谈谈我理解的SA——Systems Architecture
    C#线程安全使用(五)
    C#语法——元组类型
    架构师的御人之道
    另一个角度的架构师
  • 原文地址:https://www.cnblogs.com/Zting00/p/7497689.html
Copyright © 2011-2022 走看看