JavaScript 对象语法
javascript objects syntax
im试图学习如何使用JavaScript对象,但在这里遇到了一些问题。
var playerImg = new Image();
playerImg.src = 'player_stay.png';
var player = {
posX: 50,
posY: 50,
draw: function(){
ctx.drawImage(playerImg, player.posX, player.posY);
}
}
是否可以将玩家Img插入玩家对象?类似于 player.img 的东西
编辑:我可以这样做
var player = {
posX: 50,
posY: 50,
draw: function(){
playerImg = new Image();
playerImg.src = 'player_stay.png';
ctx.drawImage(playerImg, player.posX, player.posY);
}
}
但我认为它会创建新的 Image(); 当我使用 player.draw() 时一直;所以我问是否有更好的方法来做到这一点并将所有参数放在玩家对象中?
是的,为什么不呢:
var player = {
posX: 50,
posY: 50,
draw: function(){
ctx.drawImage(playerImg, player.posX, player.posY);
},
playerImage: playerImg
}
如果我
理解正确,您不想在player
对象之外/之前构建playerImg
对象。
好吧,这是您可以做到的一种方法,但我不推荐它,因为它不是那么可读:
var player = {
posX: 50,
posY: 50,
draw: function(){
ctx.drawImage(player.img, player.posX, player.posY);
},
img: (function(){
var playerImg = new Image();
playerImg.src = 'player_stay.png';
return playerImg;
})()
}
此构造(function(){})();
称为自执行/自调用匿名函数或立即调用的函数表达式
顺便说一句:此表达式仅在构造播放器对象时执行一次,因此您不必担心重复创建 Image。
是的,这是可能的。
通常,您可以有嵌套的对象或列表,如下所示:
var player = {
posX: 50,
posY: 50,
draw: function(){
ctx.drawImage(playerImg, player.posX, player.posY);
},
playerImage:{
src = 'player_stay.png'
},
playerList:['elem1', 'elem2']
}
在你刚刚编写的代码中引用它(值赋值的情况下的示例)
player.playerImage.src='anotherplayer.jpg';
此链接可能会有所帮助http://www.json.org/
相关文章:
- 基本对象/原型语法问题
- 创建一个类,该类使用es6类语法将Function对象创建为实例
- 我需要使用什么语法来向一个对象的成员添加一个临时数组,该成员等同于一个字符串的通用列表
- 未捕获的语法错误:javascript对象上出现意外的标记ILLEGAL
- 对象文字语法怪异
- 如何访问以数字开头的对象属性(语法错误:意外的标识符)
- ng单击错误:[$parse:syntax]语法错误:令牌'对象'意外,应为[]
- 访问JavaScript对象的正确语法
- JSON数组语法.花括号(对象语法)是严格必要的吗
- ES6 从数组解构为对象的语法
- 语法错误:JSON 分析错误:意外的标识符“对象”
- 为什么不在对象外部使用属性定义语法是语法错误
- JavaScript 语法调用对象属性
- 在哪里可以获得有关 JavaScript 函数的对象参数语法的信息
- 从文本文件加载 Json 对象 - 返回未捕获的语法错误:意外标记“[ ”
- Javascript附加一个对象语法糖
- JavaScript 对象语法
- JavaScript - 模块对象语法
- 对象构造函数语法错误
- 如何在对象内部获取数组,删除双引号并将其作为对象放入 JSON 语法中