指向JavaScript中变量的指针

指向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

+0

谢谢你的PS。 –

不,你不能返回一个指向字符串的指针。在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 
+0

我不明白,你说的是什么意思。它如何帮助我?我需要阅读并更改value \ innerHTML,如下所示:getval('address')=“new value”; 。VAR1 = GETVAL( '地址')的长度; –