javascript - 这是一种在 JavaScript 中通过引用传递的迂回方式吗?

标签 javascript

我读了这个blog post关于如何通过引用 JavaScript 中的函数潜在地传递原语。乍一看它似乎可行,但我想知道它会带来哪些潜在的陷阱。

function modifyVar(obj, val) {
    obj.valueOf = obj.toSource = obj.toString = function(){ return val; };
}

var myString = 'old string';
console.log(myString); // logs "old string"

myString = Object(myString); // convert to object
modifyVar(myString, 'new string');
myString = myString.valueOf(); // Was not in blog post. Added to return to primitive
console.log(myString); // logs "new string"

最佳答案

不,不是。您只是需要付出很多努力来模拟不可修改对象的修改(即使 Javascript 是按引用传递的,字符串是不可变的)。

关于javascript - 这是一种在 JavaScript 中通过引用传递的迂回方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21314866/

相关文章:

javascript - 无法读取未定义的属性 'session' - 管理 session Cookie Firebase Auth 生成的 cookie

javascript - jQuery 更改对象数组的任意键的值

javascript - D3js,如何根据轴值(而不是像素)设置点

javascript - 在 JavaScript 中处理点/小向量的最有效方法是什么?

javascript - 如何使用 javascript 和 css 多次更改 div 的可见性?

javascript - 使用 D3 中的 Tipsy 使悬停文本变小

javascript - 使用 mongoDB 的可排序列表

javascript - 如何为plot.ly js图例着色以及为什么它是黑色的?

javascript - 如何通过图像预览多次显示文件输入按钮?

javascript - 如何卸载新 WooCommerce 2.3.x 加载的 select2 脚本/样式?