Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅保存当前实例的对象值_Javascript_Object - Fatal编程技术网

Javascript 仅保存当前实例的对象值

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

尝试仅为单个实例更改对象的值

我正在尝试制作一个小的库,它可以提供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 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部分:我很清楚这个修复程序,但我想编辑我的库,以便以另一种方式工作。谢谢你。