Przechodzę z marketing.reg("bum","a","b","c"); ciąg do funkcji.

W pierwszym zakresie nadal jest ciągiem.

Po przejściu do następnego zakresu staje się obiektem. Jak go uniknąć?

    function mktg() {};
    mktg.prototype.reg = function(nameOfEvent,a,b,c) {
    //typeof a,b,c is string
            var fktn= function(a,b,c) {
                console.log(typeof a); //is object not string
                console.log( "fktn a: ",a);
            };

            $(document).on(nameOfEvent, fktn);

    };
    var marketing = new mktg;
    marketing.reg("bum","a","b","c");
2
hamburger 14 sierpień 2014, 18:38

2 odpowiedzi

Najlepsza odpowiedź

Zmienne A, B i C zostaną zastąpione przez argumenty wywołania "Bum".

Powinieneś usunąć parametry A, B i C z funkcji FKTN.

10
Martin Lantzsch 14 sierpień 2014, 14:40

To dlatego, że dzwonisz do funkcji fktn na pewnym wydarzeniu.

Więc w swojej funkcji

 var fktn= function(a,b,c) {}

Zmienne a,b,c nie ma więcej zmiennych z funkcji {x1}} Są parametry funkcji fktn.

Na każdym zdarzeniu pierwszego zwanego parametrem będzie sama event, który jest obiektem, dlatego otrzymujesz typeof a jest obiektem.

1
Mritunjay 14 sierpień 2014, 14:41