如果两个类相互引用,脚本加载阶段就会出现循环引用,循环引用将导致脚本加载出错:
///Game.js
var Item = require("Item");
var Game = cc.Class({
properties: {
item: {
default: null,
type: Item //用 Item 对象
}
}
});
module.exports = Game;

//Item.js
var Game = require("Game");
var Item = cc.Class({
properties: {
game: {
default: null,
type: Game //用 Game 对象
}
}
});
module.exports = Item;

上面两个脚本加载时,由于它们在 require 的过程中形成了闭环,因此加载会出现循环引用的错误,循环引用时 type 就会变为 undefined。
因此我们提倡使用以下的属性定义方式:

/Game.js
var Game = cc.Class({
properties: () => ({ //箭头函数在脚本加载中不会同步执行,而是在所有脚本加载成功后才调用。
item: {
default: null,
type: require("Item")
}
})
});
module.exports = Game;

Item.js
var Item = cc.Class({
properties: () => ({
game: {
default: null,
type: require("Game")
}
})
});
module.exports = Item;

Cocos Creator两个类相互引用(调用)相关推荐

  1. cocos 时间函数需要什么引用_Cocos Creator两个类相互引用(调用)

    如果两个类相互引用,脚本加载阶段就会出现循环引用,循环引用将导致脚本加载出错: ///Game.js var Item = require("Item"); var Game = ...

  2. 两个类相互包含引用的问题--类前向声明

    在构造自己的类时,有可能会碰到两个类之间的相互引用问题,例如:定义了类A类B,A中使用了B定义的类型,B中也使用了A定义的类型 class A {     int i;     B b; } clas ...

  3. idea中同一个包中的类相互引用失败

    idea类相互引用失败 问题描述: 在开发过程中,从git上拉取项目,发现同一包下的两个类在相互引用时出错,无法找到对应类,无法运行.困扰好久,记录一下解决办法 原因分析: 由于是同一包下的两个pub ...

  4. C++两个类互相引用的做法

    1.简单采取前向引用 我们知道C++的类应当是先定义,然后使用.但在处理相对复杂的问题.考虑类的组合时,很可能遇到俩个类相互引用的情况,这种情况称为循环依赖. 例如: class A {public: ...

  5. Cocos Creator 实现战旗类游戏《火焰纹章》移动范围效果

    编者按 本文来自于"Cocos 荣耀讲师"征稿活动第1期,最先发表于 Cocos 中文社区,作者,ituuz.2013 年便加入社区,ituuz 堪称是社区元老成员,曾发布< ...

  6. c++中两个类互相引用的问题

    最近在改一个C++程序的时候碰到一条警告信息,警告信息为:" 删除指向不完整"Q2DTorusNode"类型的指针:没有调用析构函数                 1& ...

  7. 两个类相互包含对方成员的问题(2)

    1 //A.h文件 2 #ifndef A 3 #define A 4 #include"B.h" 5 static int count=0; 6 class A 7 { 8 pu ...

  8. php 两个类 相互调用_如何在 PHP 和 Laravel 中使用 Traits

    事实上,PHP 作为一门编程语言存在的问题之一,就是你只能使用单继承.这意味着一个类只能从另一个类中继承.例如,可能希望从几个不同的类继承方法,以防止代码重复.在 PHP 5.4 中 一个新的语言特性 ...

  9. 【C++】两个类的相互引用

    有时候在设计数据结构的时候,可能会遇到两个类需要相互引用的情形.比如类A有类型为B的成员,而类B又有类型为A的成员. 那么这种情形下,两个类的设计上需要注意什么呢? 同一文件 尝试方案 将A和B的定义 ...

最新文章

  1. 【问链-链改进行时】 第二课 链改的技术架构选择
  2. lt;备份gt;10月12日 内核编译与日志
  3. 什么样的人不适合互联网创业
  4. 前端综合学习笔记---异步、ES6/7、Module、Promise同步 vs 异步
  5. go在windows下编译linux的运行的代码
  6. GPUGraphicsGame tools
  7. django运行错误:wrong number of arguments for ‘set‘ command
  8. torch.ones理解
  9. 一年太久,只争朝夕——2018年终总结
  10. ubuntu邮件客户端_在Ubuntu中将Gmail设置为默认邮件客户端
  11. 四轮差分驱动平台gazebo插件
  12. 毕业后我尝试过的副业
  13. 青龙,XDD-plus,若兰,安装
  14. 国内外经典开源数据大全!
  15. html判断是否在页面,js判断页面关闭
  16. C++解析AVI文件格式学习总结
  17. 《JUC并发编程 - 基础篇》JUC概述 | Lock接口 | 线程间通信 | 多线程锁 | 集合线程安全
  18. 计算机等级考试office和wps哪个好,ms office和wps office二级考试区别大吗?考哪个好一些?...
  19. C# 开发WCF基本步骤(以控制台为宿主)
  20. 平板电脑系统优化垃圾清理软件CleanMyMac X

热门文章

  1. [跟我学中小企业架构部署]之八:备份服务器部署
  2. 在ASP.NET中使用Session常见问题集锦
  3. 什么是A记录,子域名,CNAME别名,MX记录,TXT记录,SRV 记录,泛域名(泛解析),域名转向,域名绑定...
  4. python3 + selenium + (chrome and firefox)使用
  5. MFC中的CString类使用方法指南
  6. 如何解决 错误code signing is required for product type 'xxxxx' in SDK 'iOS 8.2'
  7. 算法~将文件夹下所有文件输出到日志文件中(包括所有子文件夹下的)
  8. vim trickies
  9. SQL 审核系统体验
  10. [php]php设计模式 Bridge (桥接模式)