我必须对Javascript中对象的工作原理有一些基本的误解,因为我无法弄清楚为什么下面的代码输出它的功能。你可以看到下面的代码在这里的的jsfiddle:http://jsfiddle.net/VivekVish/8Qvkn/1/当它的原型被赋予另一个对象的实例时,获取对象的类型
注意,是采用定义的getName功能在这里:How do I get the name of an object's type in JavaScript?
Object.prototype.getName = function()
{
var funcNameRegex = /function (.{1,})\(/;
var results = (funcNameRegex).exec((this).constructor.toString());
return (results && results.length > 1) ? results[1] : "";
};
function ContentProvider()
{
}
function LessonProvider()
{
console.log(this.getName());
}
lessonProvider1 = new LessonProvider();
LessonProvider.prototype = new ContentProvider();
lessonProvider2 = new LessonProvider();
上面的代码输出下面的控制台:
LessonProvider
ContentProvider
但为什么不是LessonProvider在这两种情况下和h在这两种情况下,ow都可以让它成为LessonProvider吗?