补环境复制原型属性脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
let  copyAllProperties =(obj)=> {
const result = {};

// 复制对象自身的属性
for (let key in obj) {
try {
result[key] = obj[key];
} catch (e) {
result[key] = '[无法访问]';
}
}

// 复制不可枚举的属性
Object.getOwnPropertyNames(obj).forEach(key => {
if (!(key in result)) {
try {
result[key] = obj[key];
} catch (e) {
result[key] = '[无法访问]';
}
}
});

return result;
}

const screenProps = copyAllProperties(window.screen);