JavaScript 构造函数参数类型

2023-12-25

我有一个代表汽车的 JavaScript 类,它是使用两个参数构造的,这两个参数代表汽车的品牌和型号:

function Car(make, model) {
     this.getMake = function( ) { return make; }
     this.getModel = function( ) { return model; }
}

有没有办法验证提供给构造函数的品牌和型号是否是字符串?例如,我希望用户能够说,

myCar = new Car("Honda", "Civic");

但我不希望用户能够说,

myCar = new Car(4, 5.5);

function Car(make, model) {
    if (typeof make !== 'string' || typeof model !== 'string') {
        throw new Error('Strings expected... blah');
    }
    this.getMake = function( ) { return make; };
    this.getModel = function( ) { return model; };
}

或者,只需将获得的任何内容转换为其字符串表示形式:

function Car(make, model) {
    make = String(make);
    model = String(model);
    this.getMake = function( ) { return make; };
    this.getModel = function( ) { return model; };
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 构造函数参数类型 的相关文章

随机推荐

  • 使用 xarray 从 netcdf 中提取最近的纬度和时间值

    我有一个带有foll的netCDF文件 结构
  • 将绘图保存到 pdf 失败

    当我使用pdf somefile pdf 将我的绘图保存到 pdf 文件中 一切似乎都有效 没有错误消息或任何内容 结果仍然很糟糕 文件大小不是 0 KB 但我无法使用预览或 adobe reader 打开它 我正在运行 Mac OS 10
  • Surefire Maven 插件:“直接写入分叉 JVM 中的本机流导致 STDOUT 损坏”

    我的 JUnit 测试在通过 Maven 和 Surefire 插件运行时失败 版本信息如下 我看到错误消息 Corrupted STDOUT by directly writing to native stream in forked J
  • 当我将 JSON 从 Firebase 转换为 Java 对象时,为什么会出现“无法反弹到类型”?

    披露 我是 Firebase 的一名工程师 此问题旨在作为参考问题 一次性回答许多问题 我的 Firebase 数据库中有以下 JSON 结构 users Jx5vuRqItEF 7kAgVWy handle puf name Frank
  • 如何在 Perl 中测试 TCP 套接字状态?

    我有一个读取数据的 TCP 套接字 当读取数据时发生错误时 我返回一个 undef NULL 值 错误可能是由格式错误的消息或损坏的套接字引起的 有人可以告诉我是否有一个特定的函数可以返回套接字的状态 有三种方法可以检测套接字是否打开或关闭
  • 为什么cloneNode排除自定义属性?

    这与问题相关javascript cloneNode 和属性 https stackoverflow com questions 4094811 javascript clonenode and properties 我看到同样的行为 No
  • NSUserDefault 线程安全吗?

    https developer apple com library mac documentation Cocoa Reference Foundation Classes NSUserDefaults Class Reference Re
  • 添加双 httpHeaders

    我想将 http 标头添加到我的响应中 我想使用这段代码 private void AddCustomHeader if string IsNullOrEmpty HttpContext Response Headers Get Acces
  • Gnuplot---聚集行堆积条

    如何在 gnuplot 中制作聚集的 rowstacked 条形图 它知道如何获得聚集的条形 但是 不是一堆行堆叠的条形 谢谢 编辑 在集群中 堆叠条也应该使用不同的颜色 图案 我不完全确定如何去做这件事 但是 一个想法是让盒子互相接触 s
  • 禁止 (403) CSRF 验证失败。请求被中止。即使使用 {% csrf_token %}

    我正在尝试在 django 中登录 但收到此错误 我检查了 CSRF 文档 但没有任何效果 这是 HTML section class container div class login h1 Login to Web App h1 if
  • 流量控制异常的替代方案是什么?

    我继承了一个java应用程序 它处理请求并在确定应该取消请求时抛出异常 异常对于以前的开发人员来说很方便 因为它们是退出不再适用的逻辑树的简单方法 是的 转到 并且它将堆栈跟踪打印到日志中 这是很好的信息 论坛和博客上似乎达成了共识 即不应
  • 开源 C# 代码来呈现波形?

    是否有任何开源 C 代码或库可以在给定字节数组的情况下呈现图形波形 这是尽可能开源的 public static void DrawNormalizedAudio ref float data PictureBox pb Color col
  • 为什么 `<< std::endl` 不调用我希望它调用的运算符?

    我正在寻找一种同时写入文件和控制台的解决方案 我找到了一个很好的解决方案here https stackoverflow com a 13665106 4117728 由于我正在使用 C 11 之前的版本 因此我必须对 Lightness
  • 减少行间距

    我正在使用 Bootstrap 网格系统 行间距太大 我怎样才能减少它 div class row div class col md 6 h1 Heading h1 div class row style margin left 6px d
  • 如何在发送到 Google 的查询之间添加随机延迟以避免在 python 中被阻止

    我编写了一个程序 每次迭代都会向 Google 发送超过 15 次查询 总迭代次数约为 50 次 为了进行测试 我必须多次运行该程序 然而 这样做几次后 谷歌就屏蔽了我 有什么方法可以通过在每次迭代之间添加延迟来愚弄谷歌吗 我还听说谷歌实际
  • POSIXct/POSIXlt 和亚秒级精度的奇怪行为

    在 POSIXct 中使用亚秒时 我很难按顺序发生序列 options digits secs 6 x lt xts 1 10 as POSIXct 2011 01 21 c 1 10 1e3 产生以下输出 为什么时间不按顺序排列 1 20
  • 反转并转换滑块值

    我目前有一个垂直滑块 由用户使用 startDrag 控制 冰球的移动受到 115 像素高的轨道影片剪辑的限制 private function init void puck y track height puck height 2 puc
  • AttachDbFilename 有什么问题

    显然 使用AttachDbFilename and user instance在连接字符串中是连接到数据库的糟糕方法 我在本地计算机上使用 SQL Server Express 一切似乎都工作正常 但是连接到 SQL Server 的正确方
  • 如何将多个数据框绘制到相同的绘图轴

    我有两个数据框 具有唯一的 x 和 y 坐标 我想将它们绘制在同一个图中 我现在正在同一图中绘制两个数据框 如下所示 plt plot df1 x df1 y plt plot df2 x df2 y plt show 然而 pandas
  • JavaScript 构造函数参数类型

    我有一个代表汽车的 JavaScript 类 它是使用两个参数构造的 这两个参数代表汽车的品牌和型号 function Car make model this getMake function return make this getMod