Symbol的作用、意义

1、ES6新增的Symbol是什么?

ES6新增的Symbol相当于一个身份证用于唯一识别的。

2、ES6新增的Symbol有什么用?

一般拿来做对象的KEY防止数据被篡改(二般情况我也没见过有知道的可以的话给我科普一下谢谢)。具体什么意思可以看第三点。

3、ES6新增的Symbol使用场景

一个方法test被另外一个类引用,假设test 中用var定义了变量name,即:

//文件A.js
test(){
	var name = '张三'
}

而你要在另一个类里面调用方法test,而且刚好的是,在当前类里面也用定义了name,这个时候name是会改变主方法test里面的name值的:

//文件B.js
modify(){
	var a = require("A.js");
	var name = '李四';
	//这个时候是会修改文件A.js里面的name值,也就是张三被改成李四了。
}

但是如果用symbol的话就不会出现以上问题,张三还是张三,李四是另外一个方法的李四(使用规则可以看看别人总结的我这里就不展开说了)

总结

在我理解里,symbol是为了解决var(全局变量)可能带来的数据不安全问题,对于let、const(局部变量)来说其实是用不上的,那用let、const不就行了吗?也不是,因为let、const是新出的,es4之前都是用的var为了兼容ES4之前的版本所以需要用symbol。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PCA_Plot_3=function (data,Annotation,VAR,Color) { # logcountdata row:genes,column: samples pca <- prcomp(data) pca_out<-as.data.frame(pca$x) df_out<- pca_out %>%tibble::rownames_to_column(var=VAR) %>% left_join(., Annotation) #df_out<- merge (pca_out,Annotation,by.x=0,by.y=0) # label_color<- factor(df_out[,group]) ggplot(df_out,aes_string(x="PC1",y="PC2")) +geom_point(aes_string(colour = Color)) } Deseq2_Deseq_function_2=function (Countdata,Coldata) { dds_fil <- DESeq2:: DESeqDataSetFromMatrix(countData =Countdata, colData = Coldata, design = ~Group) dds_fil_Deg<- DESeq2::DESeq(dds_fil) return(dds_fil_Deg) } pheatmap_singscore=function (pathways,data,Annotation) { Gene_select_anno= data[,colnames(data) %in% pathways] %>%t()%>%.[,rownames(Annotation)] # return(Gene_select_anno) # Anno_expression_data=Gene_select_anno[,c("SYMBOL",Group_select)] %>% as.data.frame() %>% distinct() %>% na.omit() # rownames(Anno_expression_data)=Anno_expression_data[,"SYMBOL"] # Annotation=group_anno["Gene_type"] # input= Anno_expression_data[,Group_select] # F2_pheatmap <- pheatmap::pheatmap(input, cellwigermline calling GATKdth = 10, cellheight = 12, scale = "row", # treeheight_row = 5, # show_rownames = T,show_colnames = T, # annotation_col= Annotation, # # annotation_row=Annotation, # annotation_legend=Label_def, # cluster_rows = T, cluster_cols = F,clustering_distance_rows = "euclidean") pheatmap::pheatmap(Gene_select_anno, cellwigermline=5, cellheight = 10,cellwidth = 10, scale = "row", treeheight_row = 5, show_rownames = T,show_colnames = F, annotation_col= Annotation, # annotation_row=Annotation, #annotation_legend=Label_def, cluster_rows = T, cluster_cols = F,clustering_distance_rows = "euclidean") } matrix.please<-function(x) { m<-as.matrix(x[,-1]) rownames(m)<-x[,1] m } 这是r语言的代码,告诉我每一条代码的作用意义
07-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值