2010-06-21 4 views
1

Привет I следующие функции в отдельных файлах JSКак вызвать функцию при назначении объекта, значение

//in js file 1 
setUsername: function(v){ 
document.Load.LogUsername = v; 
} 
//in js file 2{wrapper for js file 1} 
LogUserName: function(v) 
{ 
    return myobject.SetLoguserName(v); 
} 

Когда document.Load.LogUsername = v; называется мне это нужно, чтобы вызвать функцию LogUserName. LogUserName - это оболочка для setUsername. Любые идеи, как заставить это работать. Я знаю, что если изменение document.Load.LogUsername = v; к document.Load.LogUsername(v); то он работает, но я попросил, чтобы не изменить файл JS 1

+0

измените ваш вопрос, так что мы можем читать ваш код Javascript правильно – jigfox

+0

я не думаю, что это кросс-браузер способ сделать это, или даже каким-либо образом вообще в IE, но я заинтересованы в том, чтобы понять, что говорят cogniscenti. – Pointy

ответ

1

Вы должны сохранить первоначальную функцию, например:

var originalLogUserName = document.Load.LogUsername; 
LogUserName: function(v) 
{ 
    return originalLogUserName.call(myobject, v); 
} 
+0

Спасибо за быстрый ответ, но меня попросили не изменять оригинальную функцию – wolv

+0

@wolv: Это не изменение исходной функции. Этот код может работать во втором скрипте и просто сохраняет исходную функцию переменной. Затем вы можете вызвать функцию из переменной. – SLaks

1

Вы должны использовать setter , Например:

document.Load = 
{ 
    set LogUsername(v) 
    { 
    myobject.SetLoguserName(v); 
    } 
}; 
+0

спасибо, что вы можете объяснить на примере, я новичок в javascript – wolv

+0

@SLaks, [этот пост] (http://robertnyman.com/2009/05/28/getters-and-setters-with-javascript-code-samples-and -demos /) говорит, что Firefox, Safari, Chrome и Opera поддерживают этот синтаксис. Я проверял в Chrome. –

+0

Я этого не знал; Благодарю. – SLaks

Смежные вопросы