为什么这不起作用?
sup.farba=function() {
this.style.color="blue";
};
function ahoj() {
sup=document.getElementById("aaa");
sup.farba();
}
答案 0 :(得分:2)
sup.farba
中定义的函数不知道“this
”是什么。
尝试:
function ahoj() {
sup = document.getElementById("aaa");
sup.style.color = "blue";
}
比不需要时从函数调用另一个函数容易得多。
答案 1 :(得分:1)
this
不是您的想法,您不能只使用点表示法,并期望这些函数可以链接到某个随机变量。
对于此示例,使用bind
,apply
或call
看起来会更容易
farba = function() {
this.style.color="blue";
};
function ahoj() {
var sup = document.getElementById("aaa");
farba.apply(sup, []);
}
答案 2 :(得分:1)
简单的答案是:因为这不是它的工作原理。
sup = document.getElementById('aaa');
这会覆盖sup
...因为变量名称相同,所以无法访问sup
上的函数!
试试这个:
function farba(newcol) {
this.style.color = newcol;
}
function ahoj() {
var sup = document.getElementById('aaa');
farba.call(sup,'blue');
}