Javascript 仅保存当前实例的对象值
尝试仅为单个实例更改对象的值 我正在尝试制作一个小的库,它可以提供jQuery所做的一些事情,只是为了学习这些技巧 我目前在将元素保留在对象中以供使用时遇到问题 工作示例:Javascript 仅保存当前实例的对象值,javascript,object,Javascript,Object,尝试仅为单个实例更改对象的值 我正在尝试制作一个小的库,它可以提供jQuery所做的一些事情,只是为了学习这些技巧 我目前在将元素保留在对象中以供使用时遇到问题 工作示例: Brain('#test').html('a'); // this will change the innerHTML of #test with "a". var a = Brain('#test'); var b = Brain('#test2'); a.html('a'); // should change cont
Brain('#test').html('a'); // this will change the innerHTML of #test with "a".
var a = Brain('#test');
var b = Brain('#test2');
a.html('a'); // should change content of #test to "a", but changes content of #test2 to "a"
不起作用示例:
Brain('#test').html('a'); // this will change the innerHTML of #test with "a".
var a = Brain('#test');
var b = Brain('#test2');
a.html('a'); // should change content of #test to "a", but changes content of #test2 to "a"
我的JS:
// create the brain function to select elements
var Brain = function(selector, context)
{
if (typeof context == 'undefined')
var context = document;
Brain.elements = context.querySelector(selector);
return Brain;
};
// set and get innerHTML of element
Brain.html = function(content)
{
if (typeof content != 'undefined')
Brain.elements.innerHTML = content;
return Brain.elements.innerHTML;
};
// testing
var a = Brain('#test');
var b = Brain('#test2');
a.html('a');
b.html('b');
我的HTML
<p id="test">test</p>
<p id="test2">test2</p>
测试
test2
嗨,我刚看过你的密码。循环旋转两次,并在
#test2
id处结束。这意味着大脑
包含#test2
的元素,这就是第二个元素发生变化的原因。
更改代码如下,它正在工作
var a = Brain('#test').html('a');
var b = Brain('#test2').html('b');
快乐编码您正在寻找javascript OOP吗?你看起来很困惑。。尽管该示例似乎部分有效,但在javascript中这并不是合适的方法,至少我认为在这种情况下,这不是合适的方法,在这种情况下,您可能正在寻找泛型或全局对象。不确定您是否正在寻找类似这样的对象:->@Mark:是的,您可以,您只需对javascript OOP;)进行更深入的研究。这确实不是很基本,但实际上您可以进一步观察并尝试想象用javascript实现类的方式。请使用原型实现方法,如下所示:
Brain.prototype.functionName=function(valuesyouwanttopassifneeded){}代码>此外,如果需要,还可以覆盖函数;)不客气!使用javascript进行OOP时,请享受乐趣!此外,如果你想看,请查看本教程:它涵盖了你需要知道的很多内容。对于进一步的高级注释,请随意查看官方MDN中的advanced javascript部分:我很清楚这个修复程序,但我想编辑我的库,以便以另一种方式工作。谢谢你。