数码资讯
Javascript中数组继承的一个简单示例
树结构数据在编写一些库时经常使用,有些树结构数据对路径从根到叶有很高的要求,例如,整个站点的路由表是一棵树,它的路径实际上是URL的路径部分,所以我多次用疯狂的数组继承来实现,共享如下内容。 在Javascript中,数组是一个对象,它也可以被继承。两对象本身可以有继承关系,和阵列也不例外。所以我们
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
树结构数据在编写一些库时经常使用,有些树结构数据对路径从根到叶有很高的要求,例如,整个站点的路由表是一棵树,它的路径实际上是URL的路径部分,所以我多次用疯狂的数组继承来实现,共享如下内容。
在Javascript中,数组是一个对象,它也可以被继承。两对象本身可以有继承关系,和阵列也不例外。所以我们让任何一棵树的节点是一个数组,只保持自己的下标是最大的元素的值。其他元素的值是从祖先节点通过原型继承继承。这样,我们可以从叶节点的通用阵列的根节点访问路径。下面是一个简单的实现:
功能
定义节点类
Var TNode =函数(值){
This.push(值);
};
tnode.prototype = { };
tnode.prototype.constructor = TNode;
tnode.prototype.createchild =函数(值){
无功节点= object.create(本);
tnode.call(节点值);
返回节点;
};
使用简单树创建一个节点
VaR根=新TNode('root);
创建一个root.createchild(A);
var b = a.createchild(B);
叶子节点被视为直接路径数组。
(b.join document.write(/));<!-根
这种用法是一种魔法,它可能很难理解如果原型继承的原则是不能理解的。所以,如果你只是作为一个图书馆,你可以把它(我用过很多次,但它并不存在),但如果你直接使用它的业务代码,你可以tuckled死如果你使用它。虽然这种用法不违反了Javascript语言的核心理念。
这一用法的特点是,祖先节点的值会自动同步到所有的孩子当节点的值更新。虽然原型链接入也有性能开销,它的速度远远比在代码层的遍历树。当然,如果没有这样的需求,可以更好地实现一个简单的数字或用传统的方式。毕竟,这是对语言的依赖性太强,它可能很难迁移到其他编程语言之后。
在Javascript中,数组是一个对象,它也可以被继承。两对象本身可以有继承关系,和阵列也不例外。所以我们让任何一棵树的节点是一个数组,只保持自己的下标是最大的元素的值。其他元素的值是从祖先节点通过原型继承继承。这样,我们可以从叶节点的通用阵列的根节点访问路径。下面是一个简单的实现:
功能
定义节点类
Var TNode =函数(值){
This.push(值);
};
tnode.prototype = { };
tnode.prototype.constructor = TNode;
tnode.prototype.createchild =函数(值){
无功节点= object.create(本);
tnode.call(节点值);
返回节点;
};
使用简单树创建一个节点
VaR根=新TNode('root);
创建一个root.createchild(A);
var b = a.createchild(B);
叶子节点被视为直接路径数组。
(b.join document.write(/));<!-根
这种用法是一种魔法,它可能很难理解如果原型继承的原则是不能理解的。所以,如果你只是作为一个图书馆,你可以把它(我用过很多次,但它并不存在),但如果你直接使用它的业务代码,你可以tuckled死如果你使用它。虽然这种用法不违反了Javascript语言的核心理念。
这一用法的特点是,祖先节点的值会自动同步到所有的孩子当节点的值更新。虽然原型链接入也有性能开销,它的速度远远比在代码层的遍历树。当然,如果没有这样的需求,可以更好地实现一个简单的数字或用传统的方式。毕竟,这是对语言的依赖性太强,它可能很难迁移到其他编程语言之后。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。