代码片段1
function 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
偶然的你
相关分类