在这个例子中,当我将bind方法添加到名为deep的函数的末尾时。绑定方法不起作用。
var body = document.body;
function Depth() {
this.state = "I am inside here";
this.deep = function() {
function deeper() {
body.innerHTML = this.state;
}.bind(this);
deeper();
}
}
var obj = new Depth();
obj.deep();
在这个例子中,当我将bind方法添加到调用deep方法的新对象的末尾时。绑定方法不起作用。
var body = document.body;
function Depth() {
this.state = "I am inside here";
this.deep = function() {
function deeper() {
body.innerHTML = this.state;
}
deeper();
}
}
var obj = new Depth();
obj.deep().bind(this);
我已经知道如何使函数正常运行并打印出this.state代码。但是,我想要解释为什么前两个例子不起作用,因为这些是我编写代码的第一个想法。这是最后一个正常工作的例子。
var body = document.body;
function Depth() {
this.state = "I am inside here";
this.deep = function() {
var state = this.state
function deeper() {
body.innerHTML = state;
}
deeper();
}
}
var obj = new Depth();
obj.deep();