Javascript:获取此原型对象名称

Javascript: Get this prototype object name

本文关键字:对象 原型 获取 Javascript      更新时间:2023-09-26
..
Class.prototype.property = function(){
return(this.prototypeobject.name);
}
..
oClass = new Class();
alert(oClass.property());

这很简单(或者可能不是?我只想将当前原型对象名称作为字符串。
注意: this.prototypeobject.name不起作用。这只是一个例子。

没有这样的反射功能。函数除了通过显式引用(arguments.callee已弃用)之外不知道自己,并且函数对象无论如何都不会绑定到任何属性,因此它们无法知道各自的属性名称。每当需要"方法名称"时,请将其硬编码为字符串文本。


好的,你可以

做一些事情(使用命名函数表达式,你可以将其更改为IE的函数声明):

Constr.prototype.someProperty = function myFuncName(args…) {
    var propertyName = "";
    for (var p in this)
        if (this[p] == myFuncName) {
            propertyName = p;
            break;
        }
    alert("this function (myFuncName) was found on property '"
         +propertyName+"' of `this` object");
};
var inst = new Constr(…);
inst.someProperty(…); // alerts "… found on property 'someProperty' …"

但是,这是一个丑陋的黑客,您不应该使用它。