任何函数,只要通过 new 操作符来调用,那它就可以作为构造函数

如:任何函数,只要通过 new 操作符来调用,那它就可以作为构造函数 ;

fuction Preson(){...}var preson = new Preson("飞哥","19","男"); //this 指向 preson
document.write(preson.FirstName);    //调用构造函数

无论是构造函数还是非构造函数,两者并没有实质性的区别;构造函数可以作为普通函数使用,普通函数也可以作为构造函数来用;首字母大小写仅仅是为了在开发中能易于区分他们。

无论什么函数:

  • 只要通过 new 操作符来调用,那就是作为构造函数使用,此时this指向new出的实例
  • 如果不通过 new 操作符来调用,那就是作为普通函数使用;此时,在非严格模式下this都指向window

转载于:https://www.cnblogs.com/jing-tian/p/10803418.html

js构造函数的浅薄理解相关推荐

  1. js构造函数、原型与继承深入

    文章目录 构造函数.原型.继承 构造函数 定义构造函数 调用构造函数 构造函数的返回值 引用构造函数 this指针 this安全策略 绑定函数 使用bind 链式语法 原型 定义原型 访问原型 设置原 ...

  2. js回调函数的理解(轉)

    js回调函数(callback)理解Mark!讲之前说一句function say(){alert(,,,,,,,,)}var say=function (){alert(,,,,,,,)}var s ...

  3. Js模块化开发的理解

    Js模块化开发的理解 模块化是一个语言发展的必经之路,其能够帮助开发者拆分和组织代码,随着前端技术的发展,前端编写的代码量也越来越大,就需要对代码有很好的管理,而模块化能够帮助开发者解决命名冲突.管理 ...

  4. java 线程的构造函数_深入理解Thread构造函数

    本文参考汪文君著:Java高并发编程详解. 1.线程的命名 在构造现成的时候可以为线程起一个名字.但是我们如果不给线程起名字,那线程会有一个怎样的命名呢? 这里我们看一下Thread的源代码: pub ...

  5. JS中call用法理解

    call()方法是借用构造函数来实现继承,即在子类型构造函数的内部调用超类型构造函数. 我理解的call()的作用就是改变上下文,即在以下代码中的 function subtype(){superTy ...

  6. 理解Babel是如何编译JS代码的及理解抽象语法树(AST)

    Babel是如何编译JS代码的及理解抽象语法树(AST) 1. Babel的作用是?    很多浏览器目前还不支持ES6的代码,但是我们可以通过Babel将ES6的代码转译成ES5代码,让所有的浏览器 ...

  7. JS中setter/getter理解

    JS中setter/getter理解 JS对象属性 get/set和getter/setter 数据属性 Object.defineProperty() 访问器属性 getter/setter创建及删 ...

  8. JS构造函数返回值问题

    1.js构造函数返回值问题 构造函数本不应该,不需要有返回值,实际执行的返回值就是此构造函数的实例化对象 但是在 js 中构造函数可以有返回值也可以没有,没有时,和正常的构造函数一样,返回实例化对象 ...

  9. Js面向对象的程序设计——理解对象

    Js面向对象的程序设计 Js面向对象的程序设计 理解对象 属性类型 Js面向对象的程序设计 理解对象 示例 : var person=new Object(); person.name="N ...

最新文章

  1. Sql Server函数全解(四)日期和时间函数
  2. Git-如何将已存在的项目提交到git
  3. java mset_Java 反射机制(包括组成、结构、示例说明等内容)
  4. R语言第八讲 评估模型之交叉验证法分析案例
  5. iar 连接linux开发板,LED裸机程序(IAR)
  6. 虚构合同、虚开发票套取高校配套科研经费,一副教授被公诉!
  7. 华人学者黄皓两页证明解决计算机科学领域难题:布尔函数敏感度猜想
  8. 在cli命令行上显示当前数据库,以及查询表的行头信息
  9. 一文读懂 etcd 的 mvcc 实现
  10. 在Anaconda中实现多版本Python共存
  11. 编译器在构造函数里都做了些什么?
  12. 深度学习2.0-17.随机梯度下降之函数优化实战(himmelblau)
  13. Rearchitect Your Web Applications for Microsoft ASP.NET 2.0
  14. BGP路由选择综合实验(华为设备)
  15. UITableView滚动到指定位置
  16. Mail.Ru Cup 2018 Round 3
  17. Flexbox弹性布局,更优雅的布局
  18. 优雅的断开连接--shutdown()
  19. qss设置平面按钮_QToolButton设置QSS
  20. win10 无法查看工作组计算机名,win10系统无法查看工作组计算机的技巧

热门文章

  1. 算法导论练习 10.4-5及12.1-3
  2. 2012百度之星冬季赛第二场第二题 消去游戏I
  3. SqlServer 添加用户 添加角色 分配权限
  4. 深入理解 Unix / Linux 命令
  5. ansible的系统模块8
  6. 原生js实现canvas气泡冒泡效果
  7. 7. SQL -- 创建数据库(表,字段)
  8. 放出php压缩HTML函数,轻松压缩html、js和Css
  9. c++如何对结构体作为形参设置默认值
  10. JS中URL编码解码