說,我有兩個功能:合併兩個函數?
function foo() {
this.lorem = 'ipsum';
}
function boo() {
console.log(this.lorem);
}
而且我想在foo
函數的末尾插入boo
功能,使他們能夠共享相同的this
。我會怎麼做?
說,我有兩個功能:合併兩個函數?
function foo() {
this.lorem = 'ipsum';
}
function boo() {
console.log(this.lorem);
}
而且我想在foo
函數的末尾插入boo
功能,使他們能夠共享相同的this
。我會怎麼做?
是否這樣?
function foo() {
this.lorem = 'ipsum';
console.log(this.lorem);
}
嚴肅地說,你的問題不夠清楚,不能可靠地回答。
倘若你想將它們分開:
function foo() {
this.lorem = 'ipsum';
boo(this);
}
function boo(element) {
console.log(element.lorem);
}
總結他們都在同一環境下:
var myClass = {
foo: function foo() {
this.lorem = 'ipsum';
this.boo();
}, boo: function boo() {
alert(this.lorem);
}
};
然後激活foo
:
myClass.foo();
這不是一個類,這是一個對象。 –
我想你的意思是'foo:function(){...}';) – knittl
function foo() {
this.lorem = 'ipsum';
boo.call(this);
}
function boo() {
console.log(this.lorem);
}
foo();
如果你不想修改現有的功能做到這一點:
function foo() {
this.lorem = 'ipsum';
}
function boo() {
console.log(this.lorem);
}
function bar() {
boo.call(new foo);
}
bar();
在行動這裏是它的一個的jsfiddle: http://jsfiddle.net/8Wb6T/
我不認爲你明白什麼'這'實際上是指。它指的是'window'對象。你正在'lorem'全球化。沒有涉及「this」的「共享」。在這兩個函數中,this都指向同一個對象('window')。甚至'foo(); console.log(this.lorem);'會工作。 –