javascript – 为什么我的对象没有构造函数?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 为什么我的对象没有构造函数?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2276字,纯文字阅读大概需要4分钟。
内容图文
![javascript – 为什么我的对象没有构造函数?](/upload/InfoBanner/zyjiaocheng/775/d45cbe3c0e7b430297e1f630d2dc9d3a.jpg)
我正在编写一些帮助类来编写Adobe Illustrator脚本.
我的问题始于Eyelet对象.当我实例化它时,它在第一个新的Group()失败,因为显然Group没有构造函数.
这是我的代码的精简版:
/****************** Collection Class **********************/
function Collection() {
this.parent = app.activeDocument;
this.typename = "Collection";
}
Collection.prototype.setName = function(name) {
this.instance.name = name;
};
/****************** Group (extends collection) *****************/
function Group(name, parent) {
this.parent = parent || this.parent;
this.instance = this.parent.groupItems.add();
if(name) {
this.setName(name);
} else {
this.setName("Group");
}
}
Group.prototype = new Collection();
/****************** Shape Class **********************/
function Shape() {
this.parent = app.activeDocument;
this.typename = "Shape";
}
Shape.prototype.setName = function(name) {
this.instance.name = name;
};
Shape.prototype.stroke = function(width, color) {
this.instance.stroked = true;
this.instance.strokeWeight = width;
this.instance.strokeColor = color;
};
/****************** Line (extends Shape) **********************/
function Line(parent, start, end) {
this.instance = parent.pathItems.add();
// [ [startX, startY], [endX, endY] ]
this.instance.setEntirePath([start,end]);
}
Line.prototype = new Shape();
/****************** Eyelet (extends Shape) **********************/
function Eyelet(parent, position) {
this.instance = new Group("Eyelet", parent);
var whiteCross = new Group("White", this.instance);
var blackCross = new Group("Black", this.instance);
var build = function(group, color, width) {
var vertical = new Line( group , [0 , 0] , [0 , 50] );
vertical.setName("vertical");
vertical.stroke(width, color);
var horizontal = new Line( group , [0 , 50] , [50 , 0] );
horizontal.setName("horizontal");
horizontal.stroke(width, color);
};
build(whiteCross.instance, white, (3 * scale) );
build(blackCross.instance, black, (1 * scale) );
this.instance.position = position;
}
Eyelet.prototype = new Shape();
当我写作
var eyelet = new Eyelet(layer2, [10,10]);
我明白了
Group does not have a constructor
我通过jslint运行了这段代码,我不明白为什么这不起作用.任何帮助将非常感激.
解决方法:
事实证明,这在Adobe Illustrator中是相关的.我按照Dan Breslau的建议将Group对象重命名为MyGroup,并按预期工作.似乎Illustrator有一个导致问题的全局Group对象.谢谢你的帮助.
内容总结
以上是互联网集市为您收集整理的javascript – 为什么我的对象没有构造函数?全部内容,希望文章能够帮你解决javascript – 为什么我的对象没有构造函数?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。