gpt4 book ai didi

JavaScript 卡住浏览器

转载 作者:行者123 更新时间:2023-12-02 15:39:37 26 4
gpt4 key购买 nike

我正在尝试创建一个函数来生成重复的 css 属性以供 HTML 类使用。该函数分三个步骤运行。

  1. 使用以下内容创建对象:
    var obj = new module('prefix', 'suffix');
  • 添加几个属性:
  •     obj.addProperty('width', 'px', 2);
    obj.addProperty('height', 'px', 2);
  • 运行克隆过程:
  •     obj.clone('15', '3');

    但是,它无缘无故地卡住了。完整代码如下:

    window.cloner_module = function(prefix, suffix) {
    this.properties = []
    this.prefix = prefix;
    this.suffix = suffix;

    this.addProperty = function(option, type, side) {
    var array = [];
    array.push(option, type, side);
    this.properties.push(array);
    }

    this.clone = function(max, step) {

    var array = [];
    var entry_count = 0;
    var innerModuleArray = [];
    var moduleArray = [];
    var property;
    var option;
    var type;
    var side;
    var value;
    var string = "";


    for (var i = 0; i < max; i + step) {
    innerModuleArray = [];
    moduleArray = [];
    moduleArray.push('.' + prefix + i + suffix + '{');

    for (var y = 0; y < this.properties.length; y++) {
    property = this.properties[y];
    option = property[0];
    type = property[1];
    side = property[2];
    value;

    if (!side) {
    value = i;
    } else if (side == '1') {
    value = type + i;
    } else if (side == '2') {
    value = i + type;
    } else {
    console.log('"Side" property must be between 0 and 2');
    }

    string = option + ": " + value + "; ";
    innerModuleArray.push(string);
    }

    moduleArray.push(innerModuleArray);
    moduleArray.push('}');
    array.push(moduleArray);
    entry_count++;
    }

    this.clones = array;
    this.last_entry_count = entry_count;
    this.last_step_registered = step;
    this.last_max_registered = max;
    }
    }

    最佳答案

    由于 for 循环,您的代码正在进入无限循环,这反过来会导致浏览器卡住。核心问题是这行:

    for (var i = 0; i < max; i + step)

    这里最后的语句始终等于 3 (0 + 3),因此循环永远不会结束。您可能想将其更改为:

    for (var i = 0; i < max; i += step)

    此编辑将在每次迭代中不断增加 i step,这正是您的初衷。

    关于JavaScript 卡住浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32688061/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com