ES6 class 实例 constructor.name 使用踩坑

news/2024/7/11 1:57:41 标签: javascript, ES6, class
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

背景

开发环境使用 constructor.name 判断实例是否与类名一致,一点问题没有。但编译后的生产环境就不尽人意....

示例

这是一个简单的类 People,传入属性 name 值,调用方法 sayHello()。

class="language-class="tags" href="/tags/JAVASCRIPT.html" title=javascript>javascript">class People {
    constructor(name) {
        this.name = name;
    }

    sayHello() {
        console.log(`Hello, ${this.name} !`)
    }
}

调用

class="language-class="tags" href="/tags/JAVASCRIPT.html" title=javascript>javascript">// 实例
let p = new People('李四');
// 用于在开发环境和生产环境做对比
console.log('实例', JSON.stringify(p), p.constructor.name);
// 判断
if(p.constructor.name === 'People') {
  p.sayHello();
}

说明

接下来我们在开发环境生产环境做一下对比~

开发环境

生产环境

 


http://www.niftyadmin.cn/n/581756.html

相关文章

Mac下修复Node版本不正确的问题

可能我的Mac很久之前装过Node,现在又想耍一下子,于是习惯性动作是先看版本: node -v 咦?为毛输出的是0.12,现在应该都是至少6.x,7.x起步啊!? 估计要更新了,遂重装node: brew install node 提示node 7.5.0安装完毕,但是再次查看node版本还是0.12版本! 这是因为brew发现原…

mysql如何解决热点数据更新问题

原文地址:http://blog.itpub.net/22664653/viewspace-1269948 一 背景 某个业务线 商品开放开用户申请免费试用,当某个商品特别吸引人时,比如iPhone6 。肯定有一大波人为了少卖一个肾 疯狂去抢申请资格。有甚者利用机器人申请注册,于是简单的…

11141

ImageView的scaletype属性 ImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType)。android:scaleType是控制图片如何 resized/moved来匹对ImageView的size。ImageView.ScaleType / android:scaleType值的意义区别: CENTER …

vite import.meta.glob/import.meta.globEager 获取文件夹及其嵌套的多级子文件夹

写法 获取 components 文件夹及其嵌套的多级子文件夹的 .vue 文件夹,注意 ** 是关键。 import.meta.glob(./src/components/**/*.vue); // 或 import.meta.globEager(./src/components/**/*.vue); 说明 现在再来说说背景!glob 是基于插件 fast-glob …

引起java内存泄露的原因

1.对于打开的socket等资源,没有做及时的回收处理。 2.生存周期较长的对象,持有了生存周期较短的对象的引用,以至于那些生存周期短的对象,在无用的情况下,没有得到回收。 3.对于类的成员变量为集合的情况,对…

基于 Vite + Vue3 + TS + sass + router + element-plus 的项目搭建

基于 Vite Vue3 TS sass router element-plus 的项目搭建 这是一个 Vite Vue3 TS 项目且包含 sass、router 和 element-plus 安装 vite 注意:Vite 需要 Node.js 版本 > 14.6.0 查看 node 版本命令:node -v 查看 vite 版本命令:vi…

Rails安装eventmachine提示出错的解决方法

github中的项目其中需要eventmachine包: gem eventmachine 但是直接bundle出错,提示找不到openssl/ssl.h头文件: make "DESTDIR" compiling binder.cpp In file included from binder.cpp:20: ./project.h:107:10: fatal error: openssl/ssl.h file not found #in…

ActionLink 的概述

ActionLink ActionLink主要是一个连接&#xff0c;它定义了10个重载的扩展方法供开发者使用。 Html.ActionLink("LinkName","actionName")这段代码对应的Html如下<a href"/Home/actionName">LinkName</a>在上面的代码中设置了一个“…