javascript - 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),据我所知,浏览器支持类。
让我知道我是否应该提供任何其他相关信息。
解决方案
我假设 prop 尚未声明,因此您需要使用 var。
for(var prop in obj) {
this.svgobj.setAttribute(prop, obj[prop])
}
推荐阅读
- javascript - 从 Iterable 的 Promise 创建的 RxJs Observable 不会在每次迭代时更新值
- python - 如何根据多个条件更改列的一部分中的值?
- excel - 当我没有选择多个范围时,为什么会收到运行时间错误 1004?
- tensorflow - Keras 自定义损失函数打印张量值
- python - 根据下一列熊猫中的重复范围迭代列值
- prestashop - Prestashop:显示来自主题/主题名称/资产/img 文件夹的图像不起作用
- javascript - 无法从服务订阅数据到组件
- azure - 从 VSTS 管道获取值##debug
- automation - 低功耗蓝牙设备触发 Web 服务调用
- javascript - 将 setTimeout 转换为 async awesomeness?