3-4 Symbol

3-4 Symbol

js数据类型:
String
Number
Null
Undefined
Object
Boolean
Symbol

Symbol:
Symbol是一种全新的数据类型,作用:产生一个独一无二的值
用法:

console.log(Symbol());//Symbol()

可以传参:这个参数(description),类型为String/Number,相当于代码注释,让开发者明白当前Symbol的意义。

var name = Symbol("姓名");

由于每一个Symbol的值都不相等,Symbol可以用来解决对象属性被覆盖的问题:

const obj  = {
	[Symbol("食物")] :"涮羊肉"
};
obj.foods = "烤羊腿"; //覆盖不了
console.log(obj);//{foods: "烤羊腿", Symbol(食物): "涮羊肉"}

let mySymbol = Symbol("地址");
let obj = {
	[ mySymbol ] : "hello"
}
console.log(obj[mySymbol]);  //hello
console.log(obj[Symbol("地址")]);//undefined

③模拟私有属性:

function Food(){
	var innerName = Symbol("inner的方法名");
	this[innerName] = function(){
		console.log("我是私有方法")
	}
	this.sayHi = function(){
		this[innerName](); //我是私有方法
		console.log('涮羊肉很好吃');
	}
}
let food = new Food();
food.sayHi();//我是私有方法    涮羊肉很好吃

Symbol.for:
Symbol.for() 并不是每次都会创建一个新的 symbol,它会首先检查给定的 参数是否已经在Symbol注册表中了,如果已经存在,则会直接返回上次存储的那个。

if(Symbol.for("address") === Symbol.for("address")){
	console.log('相等');  //相等
}
发布了5 篇原创文章 · 获赞 1 · 访问量 169
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览