传递字符串成为对象

时间:2014-08-14 14:38:34

标签: javascript jquery

我将marketing.reg("bum","a","b","c");字符串传递给函数。

在第一个范围内,它仍然是一个字符串。

传递到下一个范围后,它变成了一个对象。如何避免呢?

    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");

3 个答案:

答案 0 :(得分:10)

变量a,b和c被事件调用的参数取代" bum"。

您应该从函数fktn中删除参数a,b和c。

答案 1 :(得分:1)

这是因为你在某个事件上调用函数fktn

所以在你的功能中

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

变量a,b,c不再是函数reg中的变量,它们是函数fktn的参数。

在每个事件中,第一个被调用的参数将是event本身,这是一个对象,这就是为什么你得到typeof一个对象的原因。

答案 2 :(得分:1)

代替函数(a,b,c)

尝试类似函数(“'” + a +“','” + b +“','” + c +“'”)

这会将a,b和c的值放在参数列表中的引号中,因此意味着它们将为字符串类型。

很抱歉的道歉。它以双引号内的单引号开头,然后连接a的值,然后在双引号内以','串联等。.