用对象设置函数变量's值
Set a functions variables with an object's values
通常我会用这样的东西设置函数变量:
var width = null;
var height = null;
if(options) {
if(options.width) width = options.width;
if(options.height) height = options.height;
}
有没有一种方法可以简化这一点,比如:
var width = null;
var height = null;
if(options) {
for(var val in options) {
val = options[val];
}
}
在这个简单的例子中,这似乎没有什么大的好处,但在我有大量变量要用单个对象的值设置的情况下(比如说…ajax可以做到这一点),只循环对象并以这种方式进行操作会容易得多。
不直接。如果你想把东西附加到全局名称空间(window
),你可以写这样的东西:
if (options) {
for(var val in options) {
window[val] = options[val];
}
}
但除非绝对必要,否则您通常希望避免混淆CCD_ 2。一个常用的替代方法是创建一个保存默认选项的对象,并在提供新选项时简单地覆盖它们:
var defaults = {
height: 0,
width: 0
}
if (options) {
for(var val in options) {
defaults[val] = options[val];
}
}
// use values now stored in `defaults`
console.log(defaults.height);
相关文章:
- 替换另一个变量对象中的变量值
- 如何从表单变量对象中获取特定的from属性
- 变量/对象是否按值传递,为什么我不能在 javascript 中使用变量更改对象的属性
- 执行上下文和变量对象在 JavaScript 中实际上是一回事吗?
- 如何将变量对象传递到多个javascript弹出窗体
- 如何将javascript变量/对象从一个页面传递到另一个页面
- 在具有递增的变量/对象中存储和控制传单 GeoJSON 图层
- 在回调中重用变量/对象
- 给一个有1个变量/对象的函数给定几个参数
- 使用单词'英语'因为变量/对象名称在javascript中不起作用
- 如何访问变量对象中的数据
- 使用onclick调用变量对象中的函数
- 使用Underscore JS部分和for循环的未定义变量对象
- 如何查看我的变量对象
- 变量对象属性名称作为javascript中的参数
- 从变量对象中移除DOM元素,以便将其发布到服务器
- 根据变量对象是否等于“true”输出内容
- 如何连接(变量+对象键名)以获得点表示法的对象值
- 为什么在ES5中将变量对象改为词法环境
- 动态引用变量(对象)