菜鸟一枚,刚学javascript,有个实例化对象的问题想问一下各位:
function b() { alert(1); } var a = new b(); alert(a());
function b() { alert(1); } var a = new b(); alert(a);
我想要实例化函数b然后输出1,但是上面两种都不行,请问为啥。。第一种在浏览器上报错,第二种是Object object/(ㄒoㄒ)/~~
你是没搞清楚new是什么意思,继承相关的内容:
new实际上在构造函数运行时继承了父级的原型对象的同时改变了this指向:
var obj={}; obj._proto_=Father.propotype; //原型继承 Father.call(obj); //改变this指向 return obj; 就是说 a= new b();new b()执行完的会返回一个对象给a,应为b里面什么属性方法也没写, 所以在弹出1之后,a只得到的一个空对象{};所有alert(a);就是[object object]; alert(a());//这个肯定报错啊,a是个对象,不是函数。
继承这块不太好懂,慢慢来吧
2.1m questions
2.1m answers
63 comments
56.6k users