我无法让我的javascript函数工作.
if (!cHp) { cHp = 200 };
Run Code Online (Sandbox Code Playgroud)
像魅力一样,但是
function checkNull(x, y) {
if (!x) { x = y; }
}
Run Code Online (Sandbox Code Playgroud)
根本不起作用.
我究竟做错了什么?
我有这个阵列, var arr = [0, 1, 2]
我想将它转换成这样的对象,
Object{
data: [0, 1, 2]
}
Run Code Online (Sandbox Code Playgroud)
如何使用函数获得所需的输出?谢谢.
我正在构建一个Simon游戏,并为每个新一轮构建了一个函数,如下所示:
var game = [];
var squares = ["green", "red", "blue", "yellow"];
var newRound = function() {
// adds a new round to the end of the game array
game.push(squares[Math.floor(Math.random() * squares.length)]);
// for loop to run through the game array
for (var x = 0; x < game.length; x++) {
playButton(game[x]);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,我构建了另一个函数,它控制动画和声音每次广场被用户击中,或循环通过我的for循环
var playButton = function(color){
$("#"+color).addClass(color+"--active active", 300, function(){
$("#audio-"+color).trigger('play');
$("#"+color).removeClass(color+"--active active", 300)
});
Run Code Online (Sandbox Code Playgroud)
现在,我的for-loop只需一次循环播放所有动画和声音.如何让for循环等待playButton函数在再次循环之前完成执行?
我知道,标题可能不清楚,但我有这个代码:
var date1=new Date();
alert(date1);
var date2=date1;
alert(date2);
date2.setMonth(date1.getMonth() + 6);
alert(date1+" - "+date2);Run Code Online (Sandbox Code Playgroud)
为什么date1会改变?我认为date1应该在六个月之后仍然是当前日期和日期2 ...
谢谢
假设我们有两个对象:
var a = { foo: { bar: 1 } }
var b = { foo: { bar: 2 } }
Run Code Online (Sandbox Code Playgroud)
如果我将对象 b 设置为 a ( a = b),我期望 a 采用 b 的值,而不是引用。所以,在这种情况下:
a = b
a.foo.bar = 3
console.log(b.foo.bar);
Run Code Online (Sandbox Code Playgroud)
我预计最后一个console.log显示的是 2,而不是 3。为什么?只是因为我更改了与 相关的属性a,而不是与b.
我不明白为什么 JavaScript 也会更改b属性以及如何避免这种意外行为。
如何避免这种行为?我应该以不同的方式将对象分配给变量吗?
假设在Javascript中创建了一个新的Object,它使用一种方法将数据设置为创建的实例.
我想知道,当添加数据时,数据会在内存中存在两次还是newObj.data和数据只是指向内存中的相同地址?
let data = {text: 'a text'};
let newObj = Object.create({
setData(argData) {
this.data = argData;
}
});
// is data and newObj.data twice in memory now?
Run Code Online (Sandbox Code Playgroud)
如果可能已经提出类似的问题,我会提前道歉(这就是编写本文时的编辑提示).我是这样,我还没找到他们.可能是他们的表述不同,但我不知道如何以任何其他方式提出这个问题.
有人看到我的代码中的一个错误,阻止变量"player1Bananas"改变?功能中的其他所有功能都可以正常工作
//update playerStats arguments:
//banana is a banana object
//x and y are the banana's position
//players bananas is player1Bananas or player2Bananas,
//ballPosition is "left" or "right"
updatePlayerStats: function(banana, x, y, playersBananas, ballPosition) {
playersBananas += 1;
gameController.bananasTaken += 1;
banana.x = x;
banana.y = y;
gameController.player1Score = 0;
gameController.player2Score = 0;
gameController.setUpPaddles();
gameController.setUpBall(ballPosition);
},
gameController.updatePlayerStats( gameController.Banana1, 20, gameController.canvas.height - 20 - gameController.Banana1.height,
gameController.player1Bananas, "left");
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在尝试将变量分配给另一个变量,并尝试只进行一种方式绑定.但是当值在视图中更新时,它也会更新为原始变量.如何在将变量分配给另一个变量时停止这种双向绑定.
例如:
function personController ($scope) {
var templateValue= "original value";
$scope.myVal= templateValue;
}
Run Code Online (Sandbox Code Playgroud)
在视图中:
<input type="text" ng-model="myVal" />
Run Code Online (Sandbox Code Playgroud)
结果:
当我们在文本框中键入内容时,它会更新值myVal,templateValue也就是templateValue更改我在输入框中输入的内容的值.有没有办法将变量赋值给另一个仅进行单向绑定的变量?我希望$scope.myVal在输入框之间进行双向绑定,但不要在templateValue输入框之间进行绑定.
我无法在下面的交换函数中获得所需的结果,我希望将值打印为 3,2
function swap(x,y){
var t = x;
x = y;
y = t;
}
console.log(swap(2,3));
Run Code Online (Sandbox Code Playgroud)
任何线索将不胜感激!