【发布时间】:2018-11-24 13:01:50
【问题描述】:
在下面的代码中,如何让this 关键字绑定到Square?
Square.prototype.is = {
king: function () { this.piece === "K" }
queen: function () { this.piece === "Q" }
...
};
我知道我以后可以使用call/apply,但重点是从
this.isKing()
到
this.is.king()
使其更具可读性(也将方法组合在一起)
this.is.king.apply(this)
似乎是倒退了一步。
【问题讨论】:
-
this指的是什么?this引用 Chess 实例或this引用其他对象? -
我编辑了我的帖子,问题中的课程名为
Square而不是Chess。所有this关键字都引用Square实例 -
如果你在国王和王后 fns 上都返回
this怎么办 -
抱歉,我不太明白你的意思。你的意思是第一个代码块中的方法?问题是从 Square.prototype.isKing = function() { return this.piece === "K"} 到 Square.prototype.is = { king: function() { return this.piece === "K" } } 更改
this键所指的内容。在第一个示例中,它指的是 Square 实例,在第二个示例中,它指的是 Square.prototype.is 对象。我可能回答错了你的第一个问题,很抱歉造成混乱
标签: javascript methods this grouping