function test(){ } test.prototype={ proto:{ fun:function(){ alert(1) } } } //如果这么调用 会有什么问题,为什么 (new test()).proto.fun()
貌似不会有什么问题吧
你好。
首先,最里层的语法是不通的,大括号括起来的应该是一个object。
其次,把test的prototype属性修改后,test当成普通函数调用没有问题,会执行方法体里的代码。
但把test当成构造函数时,即new test()时,new出来的对象在访问不到属性时会去prototype中找。
不好意思,代码写错了!
如果这么调用 会有什么问题,为什么
(new test()).proto.fun()
@CouverVin:这样就没有问题的。
不会有问题的!只是写法上注意加分号。