代码片段1function Foo() { var bla = 1; return { foo:function(){ return bla; } }}Foo.prototype.test = function() { console.log('abc');};var test = new Foo();console.log(test.test)如此为何不能访问到原型中的方法了,构造函数返回值应当怎么写才能把原型方法返回出来代码片段2 function Foo(age) { this.age = age; var bla = 1; return { foo:function(){ return bla; }, test:function(){ Foo.prototype.test.apply(this,arguments); } } } Foo.prototype={ constructor:Foo, test:function(){ console.log(this);//指向object对象,下面有两个函数foo和test //console.log(this.age); } }; var test = new Foo(23); test.test(); 也就是说new出来的对象已经不是指向原来构造函数,而是指向了object
1 回答
偶然的你
TA贡献1841条经验 获得超3个赞
兄弟,构造函数不是那样用的
function Foo() { } Foo.prototype.test = function() { console.log('abc'); };var test = new Foo();console.log(test.test())
这样就行了
添加回答
举报
0/150
提交
取消