指向JavaScript中变量的指针
有没有什么办法在JavaScript中创建\返回指向变量的指针?
一样,在PHP中:指向JavaScript中变量的指针
function func() {
.....
return &$result;
}
我有一个JS的功能,如:
function(...) {
x=document.getElements..... //x is HTML tag
if (x.localName=='input') return x.value //String variable
else if (x.localName=='textarea') return x.innerHTML //String variable
}
使用此功能,我可以从X获取数据的副本,但不能更改源。
我想要改变它的可能性。
谢谢
HEJ达尼 - 溴
你可以做这样的事情
function(...) {
var x = document.getElements..... //x is HTML tag
if (x.localName=='input') return {
get: function() { return x.value },
set: function(v) { x.value = v; }
};
else if (x.localName=='textarea') return {
get: function() { return x.innerHTML },
set: function(v) { x.innerHTML = v; }
};
}
所以来电者可以设置并获取该值。 ps。使用VAR声明本地变量
GL
不,你不能返回一个指向字符串的指针。在Javascript中,对象被自动分配并通过引用传递,并且原语被复制。所以如果你return x;
那么你可以修改x.innerHTML
,但是如果你返回x.innerHTML
这个字符串将被复制。
原始类型按值传递。对象通过引用传递。我想x.innerHTML是一个字符串,所以它通过值传递。
看看这段代码,就说明你通过引用传递对象:
function test(str){
return str;
}
var k = { txt : 'foo' },
n = test(k);
console.log(n.txt);
k.txt = 'bar';
console.log(n.txt);
这可能不是正是你所期待的,但还没有提出来了又一个事情是,内部函数可以访问它们的外部函数的变量:
function myFunc(){
var x = "hello";
myInnerFunc();
function myInnerFunc(){
//shows the variable of the outer function
console.log(x);
};
};
此外,您可以使用闭包,以节省外部函数的变量的状态:
function myFunc2(){
var x = "hello";
var timesCalled = 0;
return function(){
timesCalled++;
console.log(x + " called: " + timesCalled);
};
};
var fun = myFunc2();
fun(); //1
fun(); //2
fun(); //3
我不明白,你说的是什么意思。它如何帮助我?我需要阅读并更改value \ innerHTML,如下所示:getval('address')=“new value”; 。VAR1 = GETVAL( '地址')的长度; –
谢谢你的PS。 –