javascript练习题
发布日期:2022-03-11 15:03:32 浏览次数:10 分类:技术文章

本文共 2743 字,大约阅读时间需要 9 分钟。

function Vertex(city, x) {            this.name = city;            this.num = x;        }        var node0 = new Vertex("邯郸", 0);        var node1 = new Vertex("邢台", 1);        var node2 = new Vertex("石家庄", 2);        var node3 = new Vertex("衡水", 3);        var node4 = new Vertex("保定", 4);        var node5 = new Vertex("沧州", 5);        var node6 = new Vertex("廊坊", 6);        var node7 = new Vertex("张家口", 7);        var node8 = new Vertex("承德", 8);        var node9 = new Vertex("唐山", 9);        var node10 = new Vertex("秦皇岛", 10);        var vex = [node0, node1, node2, node3, node4, node5, node6, node7, node8, node9, node10];        function Graph(num) {            this.verticesnum = num;            this.edges = 0;            this.adj = [];            this.edgeTo = [];            for (var i = 0; i < this.verticesnum; i++) {                this.adj[i] = [];            }            this.addEdge = addEdge;            this.showGraph = showGraph;        }        function addEdge(v, w, x)//此处形参是结点索引        {            this.adj[v][w] = x;            this.adj[w][v] = x;            this.edges++;        }        function showGraph() {            for (var i = 0; i < this.verticesnum; i++) {                document.write(vex[i].name + "->");                for (var j = 0; j < this.verticesnum; j++) {                    if (this.adj[i][j] != undefined) {                        document.write(this.adj[i][j] + "公里" + vex[j].name);                    }                }                document.write("
"); } } g = new Graph(11); g.addEdge(0, 1, 58.67); g.addEdge(1, 3, 153.87); g.addEdge(1, 4, 248.41); g.addEdge(1, 5, 308.3); g.addEdge(1, 6, 390.18); g.addEdge(1, 7, 543.12); g.addEdge(1, 8, 621.59); g.addEdge(1, 9, 529.74); g.addEdge(1, 10, 673.94); g.addEdge(2, 3, 143.83); g.addEdge(2, 4, 142.35); g.addEdge(2, 5, 230.0); g.addEdge(2, 6, 390.18); g.addEdge(2, 7, 543.12); g.addEdge(2, 8, 621.59); g.addEdge(2, 9, 529.74); g.showGraph();

  上周末一个同学拿了一段js代码给我看,说实话起初看起来懵懵的,不过仔细研究一下很有趣,据他介绍这是一段c++入门的代码 ,我很好奇为啥能用js实现,不过想到很多js底层都是c++和c写的也就不足为奇了! 这段代码直接服务制到浏览器是可以正常执行的,废话不多说了,说一下我对这段代码的理解:

      首先浏览器加载从上到下var声明了很多全局变量,js里面是这样的它全部在javascript内部而不是function内部这段参考一下js里面作用域的概念,此时的this赋值了几个全局变量和function放到内存中,而当调用graph这个函数他内部调用了this这时候的this指的是graph这个函数体,并且设置了几个属性,属于私有属性,并且赋值给了属性两个函数,而这个函数正是加载全局的时候内部加载的两个函数体add和show,当全局变量g去调取graph这个函数的时候他的属性也被加载并且可以找到方法的索引,执行完毕之后浏览器里面能直接查询到这点:

  

 

     之后向下继续执行,直到所有方法执行完毕并在浏览器里面显示出参数.

     另外还有一种不知道正确不正确的理解方式,就是以类的概念去理解函数,定义graph方法相当于定义了graph类里面加载各种属性和方法,当执行到这个类之后相同命名空间下去调用对应方法最后输出

     希望看到此贴的各位大神多多指出其中错误,方便日后改进.

转载于:https://www.cnblogs.com/workstation-liunianguowang/p/6508584.html

转载地址:https://blog.csdn.net/weixin_30267785/article/details/99136647 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:XML 中特殊字符转换
下一篇:解释型和编译型语言的区别?并举例

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年02月29日 22时38分04秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

matlab中squareg,matlab中y=square(t,DUTY)的用法 2019-04-21
php控制器详解,Symfony2学习笔记之控制器用法详解 2019-04-21
c 程序语言设计游戏,程序设计c语言设计游戏 程序设计.doc 2019-04-21
多边形颜色渐变填充C语言,画并填充一个多边形 2019-04-21
如何Python语言格式化c盘,怎么Black自由格式化Python? 2019-04-21
opporeno怎么刷鸿蒙系统,opporeno老是提示更新系统 2019-04-21
android webview 支持ajax,Ajax在android webview中不起作用 2019-04-21
android handler 多线程,Handler与Android多线程详解 2019-04-21
html5的离线储存资源,HTML5的离线储存怎么使用? 2019-04-21
正则html开始标签,用正则使html合法闭合标签 2019-04-21
android脚本改变抽奖率,求大神帮忙修改下安卓脚本自适应屏幕分变率的代码,谢谢!... 2019-04-21
html代码 层次选择器,jQuery(常用) 基本选择器与层次选择器 12.19 2019-04-21
微信小程序 html modal,微信小程序 modal组件详细介绍 2019-04-21
uni app自定义index.html,uni-app自定义返回逻辑教程 2019-04-21
python在表格中查询数据_python-在值介于x和y之间的 dataframe 中查找单元格 2019-04-21
fastapi 大型应用_FastApi应用和部署生产环境 2019-04-21
linux升级gcc_linux 多线程 下载 aria2 2019-04-21
java中使用imageio.read(file)需要关闭流吗_跳槽,这些java面试题必须会,99%碰到!... 2019-04-21
elasticsearch删除索引字段_ElasticSearch7索引的操作(2) 2019-04-21
c:foreach 可以设置间隔时间吗_电脑前久坐肩膀疼,巧用电脑便签帮忙设置时间提醒... 2019-04-21