在javascript的构造函数本身中获取原型构造函数的名称
Get the name of a prototype constructor inside the constructor itself in javascript
是否可以在javascript中获得类本身内部的类名称?它对我的中间件中动态创建的类的递归很有用。我认为这是一个非常不恰当的帖子,所以我最好定义一下我要解决的问题:
MyClass = function(){
this.classname = ??? // Here is required and needed to store as a property
}
MyClass.prototype.log = function(){
alert(this.classname); // The alert should be MyClass
}
var myClassObj = new MyClass();
myClassObj.log();
您可能正在寻找这个:
function MyClass() {};
var myInstance = new MyClass();
console.log(myInstance.constructor.name === "MyClass");
// true
要使其工作,必须像上面那样声明函数,而不是使用MyClass = function(){}
。然后,利用函数的name
属性,利用原型链(查询constructor
属性时)。
如果需要在构造函数中直接访问,也可以使用构造函数引用:
function MyClass() { console.log(this.constructor.name === "MyClass"); };
var myInstance = new MyClass();
// true
这个问题涉及类似的主题,它可能对你也有用:从Javascript函数引用获得名称字符串?
如果"class"定义正确,则类对象具有构造函数属性,该属性是对类对象的引用。
function A() {
alert(this instanceof this.constructor);
}
var a = new A();
你可以在控制台通过
检查A.prototypeconsole.dir(A.prototype)
命令相关文章:
- 如何从构造函数中调用js原型方法
- 通过原型/构造函数从复选框输出值
- Javascript:继承原型而不重新定义构造函数
- 使用sinon.js创建一个“;“间谍对象”;使用基于真实构造函数/原型的间谍方法
- 使用构造函数 - 原型从文本框输出值
- 在构造函数中定义函数会比将其附加到原型消耗更多的内存
- JS构造函数的原型属性与其原型之间的区别
- Javascript 中的构造函数不会返回由原型函数传递的正确值
- 构造函数原型-继承混淆
- 为什么我的代码认为 canvas 函数在 JavaScript 中的构造函数原型中是未定义的
- 我应该使用构造函数/原型吗?
- 对象文字与构造函数+原型
- 从画布构造函数原型中绘制图像
- 如何给构造函数/原型函数增加值?
- 构造函数.原型不在原型链中
- 向构造函数原型添加方法
- 为什么组合构造函数/原型模式返回对象类型
- 更改构造函数原型时出现问题
- 如何创建带有未分配属性的Javascript构造函数/原型
- 构造函数-原型- __proto__