我想从调用该函数的函数中找出对象类的名称。我正在使用John Resig的class inheritance concept。
例如
var CoreStuff = Class.extend({ log: function(Message) { console.log(who + ' said ' + Message); });
var MyApp = CoreStuff.extend({ init: function() { this.log('Hello world!'); });
var app = new MyApp();
如何在层次结构中找出MyApp
或CoreStuff
或任何其他名为log()
的对象?
我不想像当前那样传递当前类的任何参数。
答案 0 :(得分:2)
var CoreStuff = Class.extend({ log: function(Message) {
console.log(this.constructor.className + ' said ' + Message); }
});
CoreStuff.className = "Core Stuff";
var MyApp = CoreStuff.extend({ init: function() { this.log('Hello world!'); }});
MyApp.className = "My App";
答案 1 :(得分:0)
这可能看起来很旧,但万一有人仍然奇迹,我最近遇到了这个问题。一切都被称为Class
的原因是因为在John的脚本中使用匿名函数的方式。
我在这里写了一篇关于它的文章:http://www.nicolasbize.com/blog/javascript-inheritance-without-loosing-class-names/
作为github上的小js框架的概念证明:http://www.nicolasbize.com/moojs