【问题标题】:`Object` vs `extend` in js consolejs控制台中的`Object`与`extend`
【发布时间】:2017-08-19 03:15:17
【问题描述】:

我找不到任何明确的答案,那么 Objecttype 和 extend type 在 JavaScript 中的区别是什么?

AngularJS中,当我安慰$state

console.log($state)
console.log($state.$current.parent)

我得到的输出为:

如您所见,$state 被解释为 Object,而后者是扩展?

我需要当前状态的父名称,所以我打算从$state.$current.parentself.name 对象中获取它。这样可以吗?还是我应该远离extend

【问题讨论】:

  • 请在下面的网站更新您的 json 并分享结果 url 以便我们检查
  • @Dilip 否。所有相关部分都需要发布在问题中,而不是放在一些外部存储中。虽然我根本看不出 JSON 与这里有什么关系。
  • @Dilip Er.. 我无法对 $state 进行字符串化。 console.log(JSON.stringify($state.$current.parent)) 返回错误 converting circular structure to JSON。基本上它是一个有这么多嵌套子对象的大对象。

标签: javascript angularjs google-chrome-devtools


【解决方案1】:

它们都是对象。Chrome 的控制台还会告诉您它们的类型。第一个它是一个通用对象,而第二个仍然是一个对象,但是被命名了。

以下是您可以非常轻松地创建命名对象的方法:

function NamedObject() { this.aProperty = 'something'; }
var namedObject = new NamedObject();

通用对象是这样创建的:

var genericObject = { aProperty: 'something' };

在您的特定情况下,uiRouter 在内部使用 angular.extend。如果您要为 this anonymous function here 指定名称,您会看到 extend 将如何重命名为函数的名称。

【讨论】:

猜你喜欢
  • 2016-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多