修改函数原型prototype,使内部函数可被外界使用
发布日期:2021-06-30 17:29:04
浏览次数:2
分类:技术文章
本文共 2075 字,大约阅读时间需要 6 分钟。
我现在写javascript,喜欢一块块的,以得到较为明晰的结构和良好的区隔性。比如:
//块一(function(){ var a,b; function f1(){ return a + b; } function f2(){ return a - b; }})();//块二(function(){ var a,b; function f1(){ return a * b; } function f2(){ return a / b; }})();
但有时,重用性又会受到些影响,万一其中的子函数要被外部使用呢?比如:
//图例。arcgis for js里面的图例var legend = (function () { var legend = new Legend({ map: map, layerInfos: [] }, "LegendContDiv"); legend.startup(); function legendClose() { $("#expandDiv").removeClass("toClose").addClass("toOpen"); $("#LegendContDiv").css("display", "none"); $("#divLegend").css("width", "18px"); $("#divLegend").css("height", "18px"); } return legend;})();
现在,因为某些原因,外部也需要使用 function legendClose()
,怎么办?如何写得简洁漂亮些?
十月革命一声炮响,**送来了prototype。
可以这样:
//图例var legend = (function () { var legend = new Legend({ map: map, layerInfos: [] }, "LegendContDiv"); legend.startup(); function legendClose() { $("#expandDiv").removeClass("toClose").addClass("toOpen"); $("#LegendContDiv").css("display", "none"); $("#divLegend").css("width", "18px"); $("#divLegend").css("height", "18px"); } Legend.prototype.close = function () { //<----------- legendClose(); }; return legend;})();legend.close();//呵呵呵呵呵呵
不要因为这个legend是个arcgis对象就特别照顾它,修改prototype,它一样乖乖就范。
2017.11.13
其实呢,要扩展对象legend功能,不一定要修改其原型,直接修改它自己就行了。
//图例var legend = (function () { var legend = new Legend({ map: map, layerInfos: [] }, "LegendContDiv"); legend.startup(); function legendClose() { $("#expandDiv").removeClass("toClose").addClass("toOpen"); $("#LegendContDiv").css("display", "none"); $("#divLegend").css("width", "18px"); $("#divLegend").css("height", "18px"); } legend.close = function () { //<-----直接修改legend本身 legendClose(); }; return legend;})();legend.close();//呵呵呵呵呵呵
修改原型,那么所有new出来的对象都会更改;如果不想影响其他对象,直接修改本对象也是可以的。视情况选用。
转载地址:https://leftfist.blog.csdn.net/article/details/78502664 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月22日 17时00分42秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【转载】炼丹实验室:深度学习网络调参技巧
2019-04-30
【论文阅读笔记】文本分类论文汇总
2019-04-30
【NLP学习笔记】One-hot encoding:独热编码
2019-04-30
【工具使用】CSDN编辑器markdown字体、颜色与字号的设置
2019-04-30
【NLP学习笔记】词共现矩阵
2019-04-30
【NLP学习笔记】NLP基础知识框架图
2019-04-30
【工具与环境】Windows下安装Sublime Text 3
2019-04-30
【工具与环境】Excel中批量插入行
2019-04-30
【学习笔记】对vanilla的一些个人理解
2019-04-30
“学硕” VS “专硕”
2019-04-30
【NLP学习笔记】知识图谱阅读笔记及其心得
2019-04-30
【工具使用】新版CSDN-markdown编辑器使用指南
2019-04-30
《知识图谱》阅读笔记(六)
2019-04-30
【NLP学习笔记】中文分词(Word Segmentation,WS)
2019-04-30
【NLP学习笔记】词性标注(Part-of-speech Tagging, POS)
2019-04-30
《知识图谱》阅读笔记(七)
2019-04-30
《知识图谱》阅读笔记(九)
2019-04-30