gpt4 book ai didi

javascript 对象原型(prototype)属性未更新

转载 作者:行者123 更新时间:2023-11-28 08:16:57 24 4
gpt4 key购买 nike

我是 javascript 新手,所以在创建对象,然后通过原型(prototype)设计更改它的属性时遇到一些问题。

这是我的代码:

function test() {
this.xCssClass = "placeholder";
this.init = function () {
var btn = document.createElement("div");
btn.className = this._CssClass;
this.Node = btn;
}
this.Node;
this.CreateInterface = function () {
var btn = document.createElement("div");
this.Node = btn;
}
this.init();
}
test.prototype.CssClass = {
get CssClass() {
return this._CssClass;
},
set CssClass(arg){
this.xCssClass = arg;
this.className = "args";
}
}
var x = new test();
document.body.appendChild(x.Node);

x.xCssClass="GHR"
Debug.WriteLine(x.xCssClass);

当我尝试重新定义 cssclass 时,它会重新定义,但不会更新添加到 Dom 的对象。我希望能够去:x.xCssClass="一些 css 类"并在 javascript 和 dom 中更新 x 对象。目前仅在 JavaScript 中进行更新。我做错了什么?我是否混淆了实例?任何帮助,将不胜感激。谢谢

最佳答案

一旦将其追加到 DOM,您就需要手动更新它。

您可以执行以下操作:

function test() {
this.xCssClass = function(class){
this.Node.className += ' '+ class;
};
this.init = function () {
var btn = document.createElement("div");
btn.className = this._CssClass;
this.Node = btn;
}
this.Node;
this.CreateInterface = function () {
var btn = document.createElement("div");
this.Node = btn;
}
this.init();
}

现在,您可以执行以下操作:

x.xCssClass("GHR");

关于javascript 对象原型(prototype)属性未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23475892/

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