let say = Symbol('say');
let eat = Symbol('eat');
let youxi = {
name:'狼人杀',
say:function(){
consoel.log('I can say hi')
},
eat:function(){
console.log('I am eatting')
}
}
给一个对象拓展方法,不知道该对象中是否已经存在要拓展的方法名称,此时可以使用Symbol 例如:给 game对象拓展 up down 方法
let game = {
up:function(){
console.log('我是原来就有的up方法')
},
down:function(){
console.log('我是原来就有的down 方法');
}
}
let methods = {
up:Symbol('up'),
down:Symbol('down'),
}
// 此时 methods 对象是一个拥有两个属性up down 并且属性值是一个Symbol 类型的变量
// 此时可以考虑使用该对象的属性作为key给game对象拓展新的方法
game[methods.up] = function(){
console.log('我是拓展的up方法')
}
console.log(game);
let newKey = methods.up;
game[newKey](); // 打印出拓展up方法
game.up(); //打印出原有的up方法