Aber wieso sollte es dann funktionieren?
Weil du nur auf eine lokale Variable zugreifst und nicht auf eine Eigenschaft des Objektes.
Versuch ichs mal so:
Du machst folgendes:
<html>
<head>
<title>test</title>
</head>
<body>
<script type="text/javascript">
var xxx = {
xxx: "xxx",
func: function()
{
alert(this.xxx)
alert(this.yyy)
}
}
var yyy = {
yyy: "yyy"
};
yyy.func = xxx.func;
yyy.func();
</script>
</body>
</html>
solltest aber das
<html>
<head>
<title>test</title>
</head>
<body>
<script type="text/javascript">
var xxx = {
xxx: "xxx",
func: function()
{
alert(this.xxx)
alert(this.yyy)
}
}
var yyy = {
yyy: "yyy"
};
function getFunc(xxx)
{
return function() { xxx.func() };
}
yyy.func = getFunc(xxx);
yyy.func();
</script>
</body>
</html>
machen!