JavaScript+获取对象/函数名称
JavaScript + Get object / function name
我正在用JavaScript构建一个应用程序。此应用程序与第三方库集成。这个库定义了这样一个对象:
getLibrary().SomeObject = function() {
function SomeObject(attrs) {
this.id = attrs.id;
this.description = attrs.description || '';
this.result = {
id: this.id,
description: this.description,
};
}
SomeObject.prototype.doSomething = function(actual) {
return 'do something';
};
SomeObject.prototype.calculate = function() {
return 42;
};
return SomeObject;
};
我在一个名为myInstance
的变量中有一个该对象的实例。当我执行console.log(myInstance)
时,我会在Chrome控制台窗口中看到以下内容:
v SomeObject
id: '1'
description: 'my description'
> result: Object
我正试图从上面得到"SomeObject"部分。我试过了:
if (myInstance instanceof SomeObject) {
...
}
然而,这并没有奏效。我基本上是想得到"类型"(或函数?)的名称。如何从myInstance
中获取?
感谢
getLibrary().SomeObject
不是构造函数,它是返回构造函数的函数。所以要使用它,你需要做一些类似的事情:
var SomeObject = getLibrary().SomeObject();
// Note --------------------------------^^
到调用以获取返回的构造函数。
然后,如果你用它来创建一个实例:
var myInstance = new SomeObject({id:"some_id"});
instanceof
将正常工作:
console.log(myInstance instanceof SomeObject); // true
实时示例:
var library = {};
function getLibrary() {
return library;
}
getLibrary().SomeObject = function() {
function SomeObject(attrs) {
this.id = attrs.id;
this.description = attrs.description || '';
this.result = {
id: this.id,
description: this.description,
};
}
SomeObject.prototype.doSomething = function(actual) {
return 'do something';
};
SomeObject.prototype.calculate = function() {
return 42;
};
return SomeObject;
};
var SomeObject = getLibrary().SomeObject();
var myInstance = new SomeObject({id: "myid"});
document.body.innerHTML = myInstance instanceof SomeObject;
如果你想知道是什么函数(可能)创建了myInstance
,前提是没有什么东西扰乱了SomeObject.prototype
(就像他们通常做的那样),你可以从myInstance.constructor
中获得它。从ES2015开始,您可以从其name
属性中获得该函数的名称,尽管它最近才被标准化,但一些浏览器多年来一直支持它。因此(在兼容的浏览器上):
console.log(myInstance.constructor.name); // "SomeObject"
相关文章:
- 使用jQuery来foreach iframe-src,并通过函数获取ID和操作
- Javascript函数获取元素内容
- 从Javascript函数获取字符串
- Jasmine测试工厂函数调用本地函数和另一个函数-获取错误:应该是间谍,但得到了function
- 从 JavaScript 函数获取 NaN 尝试多次获取相同的数据
- 从 JS 函数获取 PHP 中的值
- 如何用一个函数获取所有javascript变量
- Javascript-函数获取数组元素参数未定义/为null
- 从回调函数获取xhr状态
- 有没有一种方法可以让watch函数获取被监视文件的名称
- 从JQuery到Javascript函数获取表单对象
- 使用react.js从api函数获取json数据
- 从javascript中的递归函数获取undefined
- 使用sails.js中的beforeConnect函数获取客户端套接字
- 如何通过类名和过滤函数获取属性值
- 从php函数获取值到javascript
- 从外部函数获取参数名称
- 从方法js中的函数获取对象属性
- 使用Jquery.load()函数获取变量和页面片段
- 使用onclick函数获取点击的元素jquery