【问题标题】:How to tell the difference between a jquery object and a dict in javascript如何区分 javascript 中的 jquery 对象和 dict
【发布时间】:2011-06-11 23:05:17
【问题描述】:
>>> var jq = $('body');
>>> var di = {hello: 'world'};

>>> typeof jq == typeof di;
true

这不是真的 :(。一个 dict 对象和一个 jquery 对象不是同一种类型。这种事情用 javascript 可能吗?

【问题讨论】:

  • 在 JavaScript 中,typeof jqtypeof di 将返回“object”,因为这是唯一存在的对象类型。对象的不同之处在于它们的成员和原型。
  • 这是真的,因为jqdi 都属于同一JavaScript type (object)。

标签: javascript jquery types


【解决方案1】:

两个变量的类型都是Object。我想你会选择instanceof

jq instanceof jQuery // -> true
di instanceof jQuery // -> false

【讨论】:

  • $('body') instanceof jQuery // true
【解决方案2】:

使用 jQuery.isPlainObject

jQuery.isPlainObject(di) === true
jQuery.isPlainObject(jq) === false

【讨论】:

    【解决方案3】:

    为什么需要区分?我发现最好从另一个方向考虑这个问题:在你有一个来历不明的物体的直接情况下,有哪些不同的可能性?换句话说,它真的可以是任何东西,还是只是你需要知道要调用什么方法?

    这是个人喜好问题,但通常我发现更松散地进行鸭式检查更容易,只需检查神秘物体上是否存在几个“信号”属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-18
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多