最近写一个自用的暴力猴脚本,参照一位大佬的语句,但发现其语句在新版本 Chrome 中不可用了(代码第 2 ~ 4 行),于是我就手动加了一句(第 5 行),功能暂时能用了,但是总觉得不够优雅(捂脸) 请教各位高人怎样实现注释部分代码的功能?
let mixin = function(target, mixinObject) {
//for (let [name, prop] of Iterator(mixinObject)) {
// target[name] = prop;
//}
target['xcontains'] = mixinObject.xcontains;
};
let nodeMixin = {
xcontains: function(selector, keywords) {
for (let child of this.querySelectorAll(selector)) {
let text = child.textContent;
for (let keyword of keywords) {
if (text.indexOf(keyword) != -1) {
return true;
}
}
}
return false;
},
};
mixin(node, nodeMixin);
1
LeungJZ 2018-06-05 17:00:38 +08:00
不 babel 转成 es5 吗?
|
2
rabbbit 2018-06-05 17:12:30 +08:00 1
for (let name of Object.keys(mixinObject)){
target[name] = mixinObject[name]; } |
3
crs0910 2018-06-05 17:16:26 +08:00
```
target = { ...target, ...mixinObject } ``` |
4
crs0910 2018-06-05 17:18:29 +08:00 1
for (let p in mixinObject) {
if (mixinObject.hasOwnProperty(p)) { target[p] = mixinObject[p] } } |
5
crs0910 2018-06-05 17:24:24 +08:00
把 Iterrator 改成 Object.entries 也行
|
7
ooyy OP |
9
zonghow 2018-06-05 17:39:57 +08:00
上面的大佬已经回答问题了,我歪个楼,把 xcontains 放在 node 的原型上会不会好一点。
|