javascript渴望分配
javascript eager assignment
受jQuery的影响,我正在尝试javascript中的方法链接。我围绕一个数组构建了一个包装器,它将接受坐标点和转换方法。它的一般语法类似于:
myPath = new Path().move({x:50,y:50}).line({x:20,y:20}).rotate(Math.PI/3);
它工作得很好,而且它比一系列坐标更有可读性。然而,现在我希望能够通过对其反向自身:
// create a symmetrical path.
myPath = new Path().move().line().etc().etc.concat(myPath.reverse());
但这失败了,因为myPath作为concat的参数是未知的。当我这样做的时候它就起作用了:
var myPath = new Path();
myPath.move().line().etc().etc().concat(myPath.reverse());
但我想知道是否有比上面更短的构造可以立即将新的Object分配给变量定义?如果它在Javascript中不可能,我会对它在其他语言中是否可能感兴趣?
问候,Jeroen。
Path.prototype.concat = function () {
this.concatting = true;
return this;
};
Path.prototype.reverse = function () {
if (this.concatting) {
Array.push.apply(
this.pathArr,
Array.slice(this.pathAr).reverse()
);
this.concatting = false;
} else {
this.pathAr.reverse();
}
return this;
};
var myPath = new Path().move().line().etc().concat().reverse();
不是很优雅,但给你。
但我想知道有没有构造其他且比上面短到立即将新对象分配给变量定义?
不,您不能引用尚未创建的内容。
你也可以这样做:
(myPath = new Path()).move().line().etc().etc.concat(myPath.reverse());
您可以按照的方式编写duplicate
方法
Path.prototype.duplicate = function () {
var clone = this.clone().reverse();
this.concat(clone);
return this;
}
然后调用`var myPath=new Path((.move((.line((.etc((.deplicate((.
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 在循环中分配json值时,值被覆盖
- 动态分配GA增强型电子商务跟踪器
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 如何在jQuery中将函数的输出分配给变量
- 为集合分配大量的模型弹药
- onclick函数需要双击,因为类分配延迟
- Javascript 将变量分配给警报
- 将节点数据分配给另一个变量jstree
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- Javascript变量分配-按类别
- 如何将内容分配给元素
- 为变量分配多个nodejs导出返回值时出现问题
- Jslint 错误:需要条件表达式,而是看到分配
- 为什么可以't我将检索到的文档分配给控制台中的变量
- 将数组的拼接分配给自身时,Javascript控制台打印不起作用
- 为什么当CRLF被分配到<输入>使用php
- 在Javascript中重新分配对象变量时,原始对象会发生什么
- 为什么可以't我跳过函数签名中的参数分配
- javascript渴望分配