首页 > 解决方案 > Javascript:如何从构造函数调用方法?我的变量返回未定义

问题描述

我正在创建一个 javascript 类来处理 HTML 中的 SVG 标签。(我知道已经有很多类可以做到这一点,但我没有通过 svg.js 进行转换。此外,我已经使所有必需的函数都可以工作,我只想将它们实现为一个类以简化语法。 )

但是,由于对 javascript 不太熟悉,我Undefined在构造函数中设置的变量时遇到了问题:

class SLD {
    constructor(container,x=1000, y=1000) {
        this.ctn = document.getElementById(container);
        this.svgobj = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
        // Defining object attributes  
        var obj = {
            'width': "1000",
            'height': "1000",
            'xmlns':"http://www.w3.org/2000/svg", 
            'version':"1.1",
            'xmlns:xlink':"http://www.w3.org/1999/xlink"
        };
        // Setting attribute via for loop
        for(prop in obj) {
            this.svgobj.setAttribute(prop, obj[prop])  
        }
    }

在尝试运行它时,我返回以下错误代码: 在此处输入图像描述

如何正确定义变量?我正在使用 Chrome(版本 83.0.4103.116),据我所知,浏览器支持类。

让我知道我是否应该提供任何其他相关信息。

标签: javascriptclassdictionaryfor-loopsvg

解决方案


我假设 prop 尚未声明,因此您需要使用 var。

for(var prop in obj) {
    this.svgobj.setAttribute(prop, obj[prop])  
}

推荐阅读