在js控制台中````vs`extens`

时间:2017-03-26 13:00:09

标签: javascript angularjs google-chrome-devtools

我找不到任何明确的答案,那么JavaScript中Object类型和extend类型的区别是什么?

AngularJS 中,当我安慰$state时:

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

我的输出为:

$state and $state.$current.parent

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

我需要当前状态的父名称,所以我打算从self.name的{​​{1}}对象中获取它。这样可以吗?或者我应该避开$state.$current.parent

1 个答案:

答案 0 :(得分:3)

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

以下是如何轻松创建命名对象的方法:

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

enter image description here

通用对象的创建方式如下:

var genericObject = { aProperty: 'something' };

enter image description here

在您的具体情况下,uiRouter在内部使用angular.extend。如果您要为this anonymous function here指定一个名称,请注意 extend 将如何重命名为该函数的名称。