JS编程建议——19:不要使用类型构造器

简介: 19:不要使用类型构造器

建议19:不要使用类型构造器
在默认状态下,JavaScript预定义了很多构造函数,如Function()、Array()、Date()、string()等,如果去掉小括号,它们就是JavaScript内置对象。在JavaScript中,构造函数实际上就是类的一种抽象结构。
利用new运算符调用构造函数,可以快速生成很多实例对象。例如:

  1. var f = new Function(p1, p2, ..., pn, body);
    其中构造函数Function()的参数类型都是字符串,p1~pn表示所创建函数的参数名称列表,body表示所创建函数的函数结构体语句,在body语句之间通过分号进行分隔。可以完全省略所有参数,仅为构造函数传递一个字符串,用来表示函数的具体结构。f就是所创建函数的名称。例如:
  2. var f = new Function("a", "b", "return a+b");
    使用new Function()的形式来创建一个函数不是很常见,因为一个函数体通常会包括多条语句,如果将这些语句以一个字符串的形式作为参数来传递,代码的可读性会很差。类似的用法还有:
  3. new Boolean(false)
    new运算符调用函数会返回一个对象,该对象有一个valueof方法,同时返回被包装的函数,其实这是完全没有必要的,并且有时还令人困惑。不要使用new Boolean、new Number或new String。此外,应该避免使用new Object和new Array,可以使用{}和[]来代替。

在其他语言中,构造函数一般没有返回值,它只是初始化由this关键字所指代的对象,并且什么都不返回。但是,JavaScript构造函数可以返回一个对象,返回的对象将成为new运算符的运算值,此时this所引用的对象就会被覆盖。

  1. function F(){
  2. this.x = 1;
  3. return { y : 2 };
  4. }
  5. var f = new F();
  6. f.y; // 2
    上面示例演示了如何使用返回的对象覆盖构造函数的实例对象,但是,如果返回值是原始值时,就不会覆盖实例化对象,此时按着普通函数的方式调用构造函数就可以得到返回值。 例如:
  7. function F(){
  8. this.x = 1;
  9. return true;
  10. }
  11. var f = new F();
  12. f.x; // 1
  13. F(); // true
    因此,如果构造函数的返回值为对象,可以直接调用构造函数来引用该返回值对象,而不需要使用new运算符来运算。
相关文章
|
1月前
|
JavaScript
常见函数的4种类型(js的问题)
常见函数的4种类型(js的问题)
12 0
|
2月前
|
JSON JavaScript 前端开发
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
解决js中Long类型数据在请求与响应过程精度丢失问题(springboot项目中)
47 0
|
2月前
|
前端开发 JavaScript 开发者
探索JavaScript ES6的八种常见使用技巧:开启现代编程之旅
探索JavaScript ES6的八种常见使用技巧:开启现代编程之旅
|
1月前
|
JavaScript 前端开发
JavaScript 中如何检测一个变量是一个 String 类型?
JavaScript 中如何检测一个变量是一个 String 类型?
23 2
|
5天前
|
存储 JavaScript 前端开发
JavaScript 中松散类型的理解
JavaScript 中松散类型的理解
7 1
|
6天前
|
JavaScript 前端开发
JS中运算符的算术、赋值、+、比较(不同类型之间比较)、逻辑
JS中运算符的算术、赋值、+、比较(不同类型之间比较)、逻辑
6 1
|
7天前
|
JavaScript 前端开发 测试技术
在JS编程中常见的编程“套路”或习惯汇总
在当前技术圈快速迭代发展的时代,JavaScript是一种广泛应用于Web开发和移动应用开发的脚本语言,其重要性愈发凸显,尤其是随着技术的不断发展和应用场景的不断扩展,JS编程已经成为了许多开发者必备的技能之一。但是仅仅掌握JS语法和基本知识并不足够,为了写出高质量、可靠性和可维护性的代码,开发者需要掌握一些常见的编程"套路"或习惯,这些套路和习惯能够帮助开发者更好地组织和管理代码,提高开发效率,并减少潜在的错误和问题。在JS编程开发中,有一些常见的编程“套路”或习惯,可以帮助开发者编写高效、可维护且易于理解的代码。让我们来看看其中一些常见的编程“套路”或习惯。那么本文就来分享探讨在JS编程中
26 6
在JS编程中常见的编程“套路”或习惯汇总
|
10天前
|
JavaScript 前端开发 C语言
JavaScript编程语法练习
本篇文章是对于javaScript中if ,switch,while ,do-while,,for语法的作业练习.对于我来说也是对自己知识掌握的一种检验.是对js的基础语法进行的一次练习,通过有趣的示例进行练习,使得对于代码能够增加印象,对于知识的掌握更加透彻.
|
15天前
|
前端开发 JavaScript 索引
【Web 前端】JS的几种具体异常类型(报错)
【4月更文挑战第22天】【Web 前端】JS的几种具体异常类型(报错)
|
15天前
|
数据可视化 JavaScript 前端开发
Echarts是一个开源的JavaScript可视化库,用于创建各种类型的图表
Echarts是JavaScript的开源可视化库,Python通过Pyecharts库可调用它来绘制图表。示例展示了如何用Pyecharts创建柱状图:定义图表对象,设置标题和坐标轴,添加X轴、Y轴数据,最后渲染展示。Pyecharts还支持折线图、散点图、饼图等多种图表类型,更多详情可查阅官方文档。
30 0