• JavaScript 面向对象(四)构造函数


     

    4、构造函数

    至今,我们已经学习了非常多的调用函数的方式:

    1对象打点调用
    2圆括号直接调用 ==>
    3定时器调用 ==>匿名 全局 直接叫上面两种函数,严格模式下里面的this都是undefined ,非严格模式下是windows
    4事件处理函数调用 ==>
    5数组枚举调用
    它们体现的不同点就是函数上下文不用,它们里面的this不一样!
    6新的函数调用方法!就是function被当作构造器
    用 new 运算符来调用函数!new 就是一个运行函数的运算符
    'new运算符能够调用函数,还能返回一个对象'

    用new运算符调用一个函数的时候,会经历四步走:

    1函数内部悄悄的创建一个局部变量,是一个空对象{}。
    2函数将自己的上下文设置为这个空对象{},
    即所有语句中的'this就表示这个空对象。''
    3函数将执行所有语句。
    4所有语句执行后,函数将return这个对象,函数将把自己的上下文返回。

    0作用
    用new 操作符('实例化'),可以返回具有相同属性群的对象:
    function People(name,age,sex) {
    this.name =name;
    this.age =age;
    this.sex =sex;
    }
    var ming =new People('ming',12,'nan');
    var hong =new People('hong',11,'nv');
    console.log(ming);
    console.log(hong);

    people {name: "ming", age: 12, sex: "nan"}
    people {name: "hong", age: 11, sex: "nv"}

    可以认为 People 是一个“类(class)”,
    ming , hong , 都是这个类的“实例(instance)”。

    'JS中没有类的概念',我们这里只是和 Java、C++、C# 做一个类比,
    'JS中只有构造函数',
    '当一个函数被new操作符调用的时候,这个函数就是一个构造函数,'
    用 new 来多次调用同一个函数,它总能返回一类的具有相同属性群的对象,
    可以称这些对象是“同一个类的实例”,或者称为“同一类的对象”。
    感觉在“构造东西”。所以这个函数很神奇,像一个模子,在制作类似的对象。

    为了提醒其他程序猿,这是一个必须用new调用的函数,
    换句话说'提醒别人这是一个构造函数',这类'函数的名字必须首字母大写'。

    'JS中没有Class关键字(ECMAScript2016 增加了Class关键字)',
    使用new操作符的时候,会按‘四步走’创建一些些具有相同属性群的实例,
    此时就感觉有了‘类’,'JS只提“构造函数”,而不提“类”。''

    'JS不是一个面向对象(OO)的语言,它只是基于对象(BO)。'

    1问是不是构造函数
    ==>'用new调用它就是一个构造函数,不用new调用就不是,'
    var obj =people('sda',12,'sd');console.log(obj);
    VM1869:1 undefined

     

  • 相关阅读:
    如何在服务器上添加本地驱动器
    JQ查找到带有某个字符,并起类名,然后替换这个某个字符
    使用IWMS的网站打开显示“未能加载文件或程序集”,解决方案
    表头固顶结构
    在页面中有overflow-y:auto属性的div,当出现滚动条,点击返回顶部按钮,内容回这个div最顶部
    在文档页面整个区域出现导航随内容滚动高亮显示效果
    在文档页面局部出现导航随内容滚动高亮显示效果
    在Hmtl页面中只让其中单独的一个div隐藏滚动条但是仍可滚动浏览下边的内容
    GC参考手册 —— GC 调优(工具篇)
    GC参考手册 —— GC 算法(实现篇)
  • 原文地址:https://www.cnblogs.com/dork/p/13975548.html
Copyright © 2020-2023  润新知