我找不到任何明确的答案,那么JavaScript中Object
类型和extend
类型的区别是什么?
在 AngularJS 中,当我安慰$state
时:
console.log($state)
console.log($state.$current.parent)
我的输出为:
如您所见,$ state被解释为一个Object,后者是一个扩展?
我需要当前状态的父名称,所以我打算从self.name
的{{1}}对象中获取它。这样可以吗?或者我应该避开$state.$current.parent
?
答案 0 :(得分:3)
它们都是对象。 Chrome控制台还会告诉您其类型。第一个是通用对象,而第二个仍然是对象,而是命名。
以下是如何轻松创建命名对象的方法:
function NamedObject() { this.aProperty = 'something'; }
var namedObject = new NamedObject();
通用对象的创建方式如下:
var genericObject = { aProperty: 'something' };
在您的具体情况下,uiRouter
在内部使用angular.extend
。如果您要为this anonymous function here指定一个名称,请注意 extend 将如何重命名为该函数的名称。