可以说我有一个内联脚本标签,其代码非常简单,如下所示
(function() {
var test = "This is a simple test";
function modifyTest(s) {
s = "Modified test text";
};
modifyTest(test);
console.log(test) //Will still display "This is a simple test"
})();
但是,如果我使用test = modifyTest(test);
更改,我的问题就是这个。这是在函数内修改javascript中变量的唯一方法,这意味着我必须始终这样做
source = function(source);
为了更改函数中的变量,
还是我错过了使我无法实现这一目标的示波器概念?
该modifyTest
函数实质上是在创建一个称为s
;的局部函数级变量;该变量仅存在于函数范围内,因此对其进行修改不会影响外部范围。
如果要修改外部作用域,则不使用参数:
var test = "This is a simple test";
function modifyTest(){
test = "modified test text";
}
console.log(test); // This is a simple test
modifyTest();
console.log(test); // Modified test text
不是您可以修改通过引用传递的对象,而是可以修改某些东西的属性:
var o = { test: 'This is a simple test' };
function modifyTest(x){
x.test = 'modified test text';
}
modifyTest(o);
console.log(o.test); // modified test text
您甚至可以输入要修改的属性的名称:
var o = { test: 'This is a simple test' };
function modifyTest(x, name){
x[name] = 'modified test text';
}
modifyTest(o, 'test');
console.log(o.test); // modified test text
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句