gpt4 book ai didi

javascript - 在javascript中使变量成为函数

转载 作者:行者123 更新时间:2023-11-30 08:46:29 26 4
gpt4 key购买 nike

我目前正在尝试做类似 Google Analytics 的事情,并使用 Javascript 制作数据传输/跟踪脚本。

我的方法是,我想制作一个简短的脚本/片段以在网站上实现,例如 Google Analytics 的跟踪脚本 - 这部分非常简单。

问题是,使用 Google Analytics,他们在代码段(网站上的代码)中创建了一个 ga 变量,并且像这样设置变量:

ga('create', 'TRACK-ID');
ga('send', 'something', 'something);

插入 HTML 页面的 JavaScript 片段是(就像 Google Analytics'):

(function(i, s, o, g, r, a, m){
i['ChurnimizerTrackObj'] = r;

i[r] = i[r] || function(){
(i[r].q = i[r].q || []).push(arguments);
},

i[r].l = 1 * new Date();

o = o || "script";

a = s.createElement(o),
m = s.getElementsByTagName(o)[0];

a.async = 1;
a.src = g;

m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'cm.js', 'ga');

ga('send', 'test');
ga('create', 'TR-XXXXXX');

好吧,我可以创建 ga 变量并在我的“本地”文件(JS 文件,应该执行所有逻辑)中插入一个警报事件,但我不明白为什么我的函数不是不是像上面那样工作吗?我的本地文件是:

(
function(){
alert("something");

(
return (function(a, b, c){
alert("test");

switch(a){
case "create":
alert("A is create");
case "send":
alert("A is send");
}
alert(a);
})()
);
}
)();

问题是,当我使用函数“ga”时,它不会发出创建警报或发送警报的警报。

编辑 1:

我想知道的是,如何从本地文件中的“ga”变量获取函数参数?

我的静态消息警报被正确触发 - 但我返回函数并提醒它的参数的方法只是将参数值保留为“未定义”,我不希望它们是“发送”,“创建”等等。

编辑 2:

我想要的是通过将变量名 ga 作为函数名来将代码段中的变量传递到本地 javascript 文件。喜欢:

ga('send', 'someStr', 'someVal');

我如何进入状态,在那里我可以使用我的 ga 变量作为在本地文件中设置一些信息的函数? :-)

最佳答案

这样效果更好。您需要在 switch 中使用 break 语句。

编辑:我还更改了代码,以便您可以将新函数附加到您想要的任何内容,在本例中为 window。您还可以为函数传入一个名称,在本例中为 ga

(function(obj,name){
alert("something");

obj[name] = function(a, b, c){
alert("test");

switch(a){
case "create":
alert("A is create"); break;
case "send":
alert("A is send"); break;
}
alert(a);
};
})(window,'ga');

现在你可以像这样调用ga:

ga('create','a','b');

关于javascript - 在javascript中使变量成为函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21585578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com