我如何更正此行为,以便this
is.green
内的new book()
引用function book(){}
book.prototype.is = function(){};
book.prototype.is.green = function(){
alert(this);
// this should refer to 'new book' not `is` function
return this;
};
var Book = new book();
Book.is.green();
。因为我确信没有办法。
new book
有没有办法为每个{{1}}构建一个可以保存正确引用的新原型对象?还有其他潜在的技术吗?
答案 0 :(得分:3)
book.prototype.is = function(){ return this; }
Book.is().green();
或(我知道你说你不想改变构造函数,但是):
function book(){ this.is = this; }
Book.is.green();
或(非跨浏览器):
book.prototype = {
get is(){ return this; }
};
Book.is.green();
这有什么意义?只是将“是”这个词不必要地放在某个地方? Book.isGreen()
出了什么问题?
答案 1 :(得分:0)
我认为如果您的对象上的每个方法都返回基础对象,那么this
将是您想要的。
有点像jQuery方法总是返回对jQuery对象的引用。