鸿蒙系统技术分析,【HarmonyOS】分析鸿蒙系统的 JavaScript 框架

function hijackArray(target) {

OBSERVED_METHODS.forEach(key => {

const originalMethod = target[key];

defineProp(target, key, function() {

const args = Array.prototype.slice.call(arguments);

originalMethod.apply(this, args);

let inserted;

if (ObservedMethods.PUSH === key || ObservedMethods.UNSHIFT === key) {

inserted = args;

} else if (ObservedMethods.SPLICE) {

inserted = args.slice(2);

}

if (inserted && inserted.length) {

inserted.forEach(Subject.of);

}

const subject = target[SYMBOL_OBSERVABLE];

if (subject) {

subject.notifyParent();

}

});

});

}

你可能感兴趣的:(鸿蒙系统技术分析)