[英]sharing data across callback functions
我有以下兩個回調函數。 我想知道是否可以在clipname和has_clip函數之間共享名稱對象? 這是將liveapi用於ableton,但我肯定它只是一般的javascript。
function loadclips() {
names = new LiveAPI(this.patcher, 1, clipname, “live_set tracks 0 clip_slots 1 clip”);
names.property = “name”;
slot = new LiveAPI(this.patcher, 1, has_clip, “live_set tracks 0 clip_slots 1”);
slot.property = “has_clip”;
}
function clipname(args) {
post(args);
}
function has_clip(args) {
post(args);
}
我認為最安全的方法是從loadClips返回一個對象(似乎也很明智)。 確保在新變量上使用var
。 全球范圍內的污染會引入難以發現的錯誤。
function loadclips() {
var names = new LiveAPI(this.patcher, 1, clipname, “live_set tracks 0 clip_slots 1 clip”);
names.property = “name”;
var slot = new LiveAPI(this.patcher, 1, has_clip, “live_set tracks 0 clip_slots 1”);
slot.property = “has_clip”;
return {
names: names,
slot: slot
};
}
然后將其傳遞到可能需要的任何函數中。
function clipname(args, namesAndSlots) {
// namesAndSlots is available here
post(args);
}
function has_clip(args, namesAndSlots) {
// namesAndSlots is available here
post(args);
}
現在您可以調用loadClips:
var namesAndClips = loadClips();
var clip = clipName('a', namesAndClips);
無論如何,我認為這更接近您的需求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.