实践如下
var str = function()
{
return "Hello world!";
};
str.prototype = {a:1}
var str2 = function()
{
return new RegExp("Hello world")
}
str2.prototype = {a:1}
var os1 = new str();
alert(os1)//[object Object]
alert(os1.a)//1
var os2 = new str2();
alert(os2);// /Hello world/
alert(os2.a)// undefined!!!外面那个new根本没起作用!
所以我倾向于认为这个是js实现的一个特征,和原本对new的认识有些小冲突。
大家可以试试看。