是否有获取对象接口(interface)的函数之类的?
喜欢,<p/>
= HTMLParagraphElement
,我该如何取回它?
提前致谢!
最佳答案
我认为只有一种方法可以做到这一点:获取所有可用接口(interface)的列表,遍历此列表并使用 instanceof
检查变量值的类型运营商。
这种方式应该像下面这样工作:
var element = ... // here your element comes
var interfaces = [HTMLParagraphElement, HTMLDivElement];
var interface = interfaces.filter(function (x) { return element instanceof x; })[0].toString();
现在你得到类似 function HTMLParagraphElement() { [native code] }
的东西在接口(interface)变量中(如果元素是 <p />
)。我假设这只适用于 V8 (Google Chrome)。现在您可以使用正则表达式来提取接口(interface)名称。
interface.match(/function (.+)\(\)/)[0]
要获取所有接口(interface)的列表,您可以使用以下方法(仅适用于 HTML 元素):
var interfaces = [];
for (var key in window) {
if (key.indexOf('HTML') == 0)
interfaces.push(window[key]);
}
我同意 duri 的回答,所以你不需要枚举所有接口(interface),使用 constructor
方法是获取原型(prototype)函数的更简单方法。之后你可以使用我写的正则表达式来提取接口(interface)名称。
关于javascript - 如何返回对象接口(interface)名称/类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7360795/