You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Indesign JS如何创建带独立属性的类/蓝图对象并实例化?

在InDesign JS中创建可实例化的类对象

完全可以,InDesign的JavaScript引擎支持ES5及以上语法,你可以通过ES6类或者构造函数实现带有独立内部值的蓝图对象,每个实例都会拥有专属的属性副本。

方法一:ES6类写法(推荐)

语法清晰直观,是现代JS的标准写法:

// 定义包含属性和方法的类
class DesignItem {
  // 构造函数:初始化实例的color和name属性
  constructor(color, name) {
    this.color = color;
    this.name = name;
  }

  // 定义返回"hello"的方法
  getGreeting() {
    return "hello";
  }
}

实例化并使用

// 创建第一个独立实例
const item1 = new DesignItem("#ff0000", "红色元素");
// 创建第二个独立实例
const item2 = new DesignItem("#0000ff", "蓝色元素");

// 验证实例的独立属性
console.log(item1.color); // 输出 "#ff0000"
console.log(item2.name); // 输出 "蓝色元素"

// 调用实例方法
console.log(item1.getGreeting()); // 输出 "hello"
console.log(item2.getGreeting()); // 输出 "hello"

方法二:兼容旧版本的构造函数写法

如果你的InDesign版本对ES6支持有限,可采用传统构造函数+原型链的方式:

// 构造函数作为蓝图模板
function DesignItem(color, name) {
  this.color = color;
  this.name = name;
}

// 将方法挂载到原型上,所有实例共享方法(节省内存)
DesignItem.prototype.getGreeting = function() {
  return "hello";
};

// 实例化方式与ES6一致
const item3 = new DesignItem("#00ff00", "绿色元素");
console.log(item3.color); // 输出 "#00ff00"
console.log(item3.getGreeting()); // 输出 "hello"

所有实例的color和name属性都是独立存储的,修改某一个实例的属性不会影响其他实例。

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 11:25:53