相关疑难解决方法(0)

Javascript如果只在函数外工作

我无法让我的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)

根本不起作用.

我究竟做错了什么?

html javascript scripting

1
推荐指数
1
解决办法
908
查看次数

如何将数组转换为对象?

我有这个阵列, var arr = [0, 1, 2]

我想将它转换成这样的对象,

Object{
   data: [0, 1, 2]
}
Run Code Online (Sandbox Code Playgroud)

如何使用函数获得所需的输出?谢谢.

javascript arrays object

1
推荐指数
1
解决办法
146
查看次数

for循环可以等到其中的函数完成执行吗?

我正在构建一个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函数在再次循环之前完成执行?

CodePen上的代码示例

javascript jquery for-loop function

1
推荐指数
1
解决办法
1711
查看次数

javascript setMonth() - 从date1设置一个月到date2.为什么date1也会改变?

我知道,标题可能不清楚,但我有这个代码:

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 ...

谢谢

javascript date

1
推荐指数
1
解决办法
59
查看次数

JavaScript 对象分配:意外行为

假设我们有两个对象:

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 oop object

1
推荐指数
1
解决办法
303
查看次数

Javascript Object.create:设置数据时内存会发生什么?

假设在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)

如果可能已经提出类似的问题,我会提前道歉(这就是编写本文时的编辑提示).我是这样,我还没找到他们.可能是他们的表述不同,但我不知道如何以任何其他方式提出这个问题.

javascript javascript-objects

1
推荐指数
1
解决办法
54
查看次数

调用函数时变量不变

有人看到我的代码中的一个错误,阻止变量"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)

谢谢!

javascript variables

0
推荐指数
1
解决办法
61
查看次数

在将变量分配给另一个变量时强制单向绑定

我正在尝试将变量分配给另一个变量,并尝试只进行一种方式绑定.但是当值在视图中更新时,它也会更新为原始变量.如何在将变量分配给另一个变量时停止这种双向绑定.

例如:

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输入框之间进行绑定.

javascript angularjs

0
推荐指数
1
解决办法
1678
查看次数

变量值的 swap() 函数

我无法在下面的交换函数中获得所需的结果,我希望将值打印为 3,2

function swap(x,y){
 var t = x;
 x = y;
 y = t;
}

console.log(swap(2,3));
Run Code Online (Sandbox Code Playgroud)

任何线索将不胜感激!

javascript variables swap function

-3
推荐指数
1
解决办法
2万
查看次数