我必須對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嗎?