相关疑难解决方法(0)

获取对象类型的名称

是否有Java的JavaScript等价物class.getName()

javascript

1159
推荐指数
12
解决办法
72万
查看次数

为什么有必要设置原型构造函数?

MDN文章面向对象的Javascript简介中关于继承部分中,我注意到他们设置了prototype.constructor:

// correct the constructor pointer because it points to Person
Student.prototype.constructor = Student;  
Run Code Online (Sandbox Code Playgroud)

这有什么重要意义吗?省略它可以吗?

javascript oop inheritance

284
推荐指数
6
解决办法
5万
查看次数

如何在switch语句中使用instanceof

我使用自定义错误(es6-error)允许我根据他们的类处理错误,如下所示:

import { DatabaseEntryNotFoundError, NotAllowedError } from 'customError';

function fooRoute(req, res) {
  doSomethingAsync()
    .then(() => {
      // on resolve / success
      return res.send(200);
    })
    .catch((error) => {
      // on reject / failure
      if (error instanceof DatabaseEntryNotFoundError) {
        return res.send(404);
      } else if (error instanceof NotAllowedError) {
        return res.send(400);
      }
      log('Failed to do something async with an unspecified error: ', error);
      return res.send(500);
    };
}
Run Code Online (Sandbox Code Playgroud)

现在我宁愿为这种类型的流使用开关,导致类似于:

import { DatabaseEntryNotFoundError, NotAllowedError } from 'customError';

function fooRoute(req, res) {
  doSomethingAsync()
    .then(() …
Run Code Online (Sandbox Code Playgroud)

javascript error-handling ecmascript-6

47
推荐指数
2
解决办法
2万
查看次数

Javascript HashTable使用Object键

我想创建一个哈希表,将我的对象作为他的密钥,而不将其转换为String.

有点像这样:

var object1 = new Object();
var object2 = new Object();

var myHash = new HashTable();

myHash.put(object1, "value1");
myHash.put(object2, "value2");

alert(myHash.get(object1), myHash.get(object2)); // I wish that it will print value1 value2
Run Code Online (Sandbox Code Playgroud)

编辑:请参阅我的答案以获得完整的解决方案

javascript hash key object

37
推荐指数
3
解决办法
5万
查看次数

如何在Javascript中检查实例的类?

可能重复:
如何获取JavaScript对象的类?

在Ruby中,我可以这样做来检查实例的类:

'this is an string'.class

=>String
Run Code Online (Sandbox Code Playgroud)

在js中有类似的东西吗?

javascript

17
推荐指数
2
解决办法
4万
查看次数

检查对象是否是类的"直接实例"

我有两节课:

class Bar extends Foo { // Foo isn't relevant
  constructor(value) {
    if (!(value instanceof Foo)) throw "InvalidArgumentException: (...)";
    super();
    this.value = value;
  }
}

class Baz extends Bar {
  constructor(value) {
    super(value);
  }
}
Run Code Online (Sandbox Code Playgroud)

Bar constructor如果检查value是美孚的一个实例,它如果不是抛出一个错误.至少,这就是我想要的.如果传递a Bar或a Bazas值,则if语句true也会返回.目标是只让我们Foo通过.
我已经找到了这个答案,但这并没有真正回答我的问题.

javascript class subclass object instance

9
推荐指数
1
解决办法
1055
查看次数

如何获得最具体的X,使得y instanceof X为真?

鉴于一些对象y,我怎样才能找出最具体X的表达方式

y instanceof X
Run Code Online (Sandbox Code Playgroud)

评估到true

例如,以下两个表达式都评估为true

[] instanceof Object
[] instanceof Array
Run Code Online (Sandbox Code Playgroud)

......但Array更具体Object.

javascript

6
推荐指数
1
解决办法
189
查看次数

如何判断两个javascript实例是否属于同一类类型?

我正在使用John Resig的简单继承类来定义一些类,例如:

var MyClass = Class.extend({});
var MyOtherClass = Class.extend({});
Run Code Online (Sandbox Code Playgroud)

然后我有一些实例

var instanceA = new MyClass();
var instanceB = new MyClass();
var instancec = new MyOtherClass();
Run Code Online (Sandbox Code Playgroud)

如何确定是否instanceA与“类型”相同instanceB

注意:我不是要检查它们是否都是a MyClass,我需要确定一个类,然后查看另一个是否相同,无论它们是MyClasss,MyOtherClasss还是任何其他类型。

谢谢

javascript inheritance

5
推荐指数
1
解决办法
1651
查看次数

在猫鼬预保存挂钩中获取模型/集合的名称

我正在创建一个 mongoose 预保存钩子,我想知道模型/集合的名称,我将其保存在预保存钩子中。我可以从哪个变量中得到它。

module.exports = exports = function lastModifiedPlugin (schema, options) {
    schema.pre('save', function (next) {
        var self = this;

        self.constructor.findOne({ _id: self._id }, function (err, launch){
            console.log(" model " + self.mongooseCollection);
            console.log(Object.getOwnPropertyNames(this));
            console.log(Object.getOwnPropertyNames(schema));

            next()
        });

    })

    if (options && options.index) {
        schema.path('lastMod').index(options.index)
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图探索thisschema变量的函数和属性,但无法保存名称 od 模型。

mongoose mongodb node.js

4
推荐指数
1
解决办法
1135
查看次数

js库支持各种数据结构?(比如java中的番石榴)

来自Java我非常喜欢Guava提供的丰富数据结构集合所提供的灵活性.在js或jquery中是否有"类似番石榴"的库?

注意:我听说关闭,看起来有点沉重 - 更简单?(或者真正关闭我需要的东西吗?)

注2:通过"丰富的数据结构集合",我的意思是排序的地图和集合,多图(允许重复的密钥)和多重集(允许多个条目的集合 - 看起来很奇怪,但实际上非常有用!)等.

javascript jquery jquery-plugins guava data-structures

3
推荐指数
2
解决办法
1948
查看次数

TypeScript中的类型检测

有没有一种方法可以在TypeScript中获取函数调用者的类型名称?另外,有没有办法获取当前对象类型的名称

就像是:

export class SomeData {
    sampleFunc() {
        console.log(this.getTypeName());
    }

    //or
    anotherFunc(caller: any) {
        console.log(caller.getTypeName());
    }
}
Run Code Online (Sandbox Code Playgroud)

getTypeName是这里所需的功能。编译后,TypeScript中的类型消失。有typeof(用于获取类定义对象本身),但我看不到如何获取名称

这其中的一个用法可能是更清洁记录与console.group(name)console.groupEnd()-至少在开发时间。

编辑:

据我搜索,有一个针对Metadata Reflection APIPolyfill提案“ 将Decorators添加到ES7,以及一个ES7 Reflection API for Decorator Metadata的原型 ”。可以将它与TypeScript中的装饰器一起使用。

javascript typescript type-deduction

2
推荐指数
1
解决办法
364
查看次数