javascript - `arguments` JavaScript 中的对象

标签 javascript

Secrets of the JavaScript Ninja解释 arguments 关键字与 merge() 函数:

function merge(root){
 for (var i = 1; i < arguments.length; i++) { // starts at i = 1, not 0
   for (var key in arguments[i]) {
     root[key] = arguments[i][key];
   }
 }
 return root;
}

var merged = merge(
 {name: "Batou"},
 {city: "Niihama"});

注意断言:

assert(merged.name == "Batou", 
    "The original name is intact.");
assert(merged.city == "Niihama", 
    "And the city has been copied over.");

为什么merged.name等于Batou而不是undefined

据我了解,由于 merge() 不会查看外部 for 循环中的第一个参数,因此 name: Batou 如何添加到

最佳答案

root 本身是第一个参数,因此我们不需要将其中的任何成员添加到其自身中。

关于javascript - `arguments` JavaScript 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20792369/

相关文章:

javascript if 条件 : object exists and has a value appended

javascript - 选择事件顺序,以便 onchange 事件在提交之前触发

javascript - Sails.js 日志传输取决于环境

javascript - 在html中创建6个复选框

javascript - 禁用由 React 应用程序呈现的网页选定部分的副本

javascript - 为所有浏览该网站的用户保存变量

javascript - react 测试库 : Unable to Change Material UI DatePicker Input Value

javascript - 如何只显示包含对象的数组?

javascript - 显示从现在起 30 天后的日期,只有第 30 天检测是否是周末或假期是否正确

javascript - 访问父 Controller 中指令的html内容