zoukankan      html  css  js  c++  java
  • 函数表达式和构造函数的区别

    //函数表达式,将一个函数赋值给一个变量
    var a=function(config){
    this.name=config;
    this.out = function(){
    alert(1)
    }

    }
    a.name='hewenk';
    a.prototype.inner=function(){
    alert(1)
    }
    var n=new a('1234');
    n.out();//1
    n.inner();//1
    console.log(n.name)//1234
    console.log(a.name);//空 函数表达式的自定义属性实例无法继承

    //直接定义一个函数
    function b(config){
    this.name=config;
    this.out = function(){
    alert(2)
    }
    }
    b.prototype.inner=function(){
    alert(2);
    }
    b.name = '1234';
    var m=new b('123');
    m.out();//2
    m.inner();//2
    console.log(m.name);//123 构造函数的自定义属性实例无法继承
    在使用过程中:全局的带var和function的先预解释,但是function在预解释的时候就创建堆内存,给这个函数一个保存地址,而函数表达式只是先申明,只有在使用的时候才进行定义,所以函数表达式
    使用之前需要先定义好,例如下面这个例子,就会报错
    var n=new a('1234');// a is not a constructor
    n.out();//
    n.inner();//
    console.log(n.name)//
    console.log(a.name);//空
    var a=function(config){
    this.name=config;
    this.out = function(){
    alert(1)
    }

    }
    在使用的过程中,两者的区别不是很大,都不能继承自定义的属性,函数表达式需要先定义后使用
    人活着,最重要的就是开心
  • 相关阅读:
    每天进步一小点
    C# 类
    XML JavaScript
    基础XML
    多态,重载,重写
    数据结构
    sql server规范
    .net core 使用TimeZoneInfo类的时间与时间戳转换
    git 重命名文件与文件夹
    IDEA spring boot 开启热加载
  • 原文地址:https://www.cnblogs.com/-youth/p/5544141.html
Copyright © 2011-2022 走看看