1.第一种调用方法:
obj[Reflect.ownKeys(obj)[index]]()
//向对象中添加方法 up down
let game = {
name: 'YY',
up() {
console.log('向上');
},
down() {
console.log('向下');
}
}
//声明一个对象
let methods = {
up: Symbol(),
down: Symbol()
};
game[methods.up] = function() {
console.log('up');
}
game[methods.down] = function() {
console.log('down');
}
console.log(game);
game.up(); //向上
game.down(); //向下
//调用Symbol创建的函数
game[Reflect.ownKeys(game)[3]]() //up
game[Reflect.ownKeys(game)[4]]() //down
2.第二种调用方法:
Object.getownPropertySymbols(obj)[index]();
//直接加入
let youxi = {
name: '狼人杀',
[Symbol('say')]: function() {
console.log('发言');
},
[Symbol('zibao')]() {
console.log('自爆');
}
}
console.log(youxi);
console.log(youxi['name']); //狼人杀
//调用Symbol创建的函数
const a = Object.getownPropertySymbols(youxi);
youxi[a[0]](); // 发言
youxi[a[1]](); // 自爆
let up1 = Symbol();
let down1 = Symbol();
let game1 = {
name: 'YY',
up1() {
console.log(1);
},
down1() {
console.log(2);
},
[up1]() {
console.log('向上');
},
[down1]() {
console.log('向下');
}
}
console.log(game1);
game1.up1(); // 1
game1.down1(); // 2
//调用Symbol创建的函数
game1[up1](); // 向上
game1[down1](); // 向下
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。