由于变量范围,requireJS丢失了原型
requirejs lost prototype due to variable scoping?
我正在尝试开发(重写)为小型国际象棋引擎(平板电脑上的 2 名玩家或远程游戏)
由于属性和巴哈维在增长可用类型的 nubzer 时逐渐出现在系统上:我正在制作一些中间模块
-
基本的:营地,代数参考,风玫瑰
-
中级:棋盘、棋盘、棋牌
-
全球的:游戏
我正在使用require.js来定义我的模块,我有很多对象交叉引用,所以我正在构建一个池(事务管理器)来保存依赖关系图之间的关系。
当尝试在定义的模块之外获取一个对象的原型时,问题就出现了,如下所示:
// file: js/app/chess/board.js
define("chess/algebr", function(algebr) {
var Board = function(id) {
this.id = id;
}
// other stuff ...
return {
create : function() { return new Board(); }
}
});
// file js/app/colorchess.js
define("core/pool", "chess/board", "chess/tile", function(pool, board, tile) {
// some other stuff...
var board = board.create();
console.log(board.prototype); // --> undefined
});
那么,这是怎么回事呢?董事会的原型去哪儿了?这是一个模块之间范围界定的故事吗?
问候。
这与require.js无关。
prototype
只是您错误地尝试访问的属性,将其与原型设置器混淆:
var Board = function(id) {
this.id = id;
};
Board.prototype.test = function () {return 42;}
console.log( (new Board()).prototype );
http://jsfiddle.net/Gtb2L/
儗:
console.log( (new Board()).__proto__ ); // works in fresh browsers like Chrome 30, IE11
在这里,您将看到对内部原型的引用
相关文章:
- 使用“;这个“;JavaScript原型方法中的关键字
- 引用类变量中的原型方法
- 如何从对象的原型方法访问JavaScript对象属性
- 以可优化的方式使用requirejs加载模板
- RequireJS向模块传递配置总是返回undefined
- 为什么要包装每一个原型“;类“;JS中具有匿名函数的对象
- Node.js中的JavaScript原型对象效率
- 重载JS'firefox中的对象原型
- “util.inherits”和在NodeJS中扩展原型之间的区别
- 附加到原型属性的Do函数没有闭包
- 使用方括号访问插件原型函数
- 为什么JSON.stringify没有序列化原型值
- 为什么要返回'这'在导致循环的JavaScript原型中
- 带有对象/原型的链式承诺(Q延期)
- 如何覆盖原型中的事件侦听器
- 如何在Mocha/Chai中测试JS原型(非模块)
- 我将如何将Base的原型分配给User
- 由于变量范围,requireJS丢失了原型
- requireJS Object 原型可能只是一个 Object 或 null - jQuery
- 由requirejs加载的javascript文件中的原型函数