JS动态特性

简介: var arr=[]; arr['js']='jquery'; arr['css']='oocss'; var obj={}; for(var i in arr) { obj[i]=arr[i]; } alert(obj.js);   JS语言的动态特性非常灵活,可以给对象动态的增加新的属性或者方法,即便是对数组也是可以动态增加其个数。

 

var arr=[];
arr['js']='jquery';
arr['css']='oocss';
var obj={};
for(var i in arr)
{

    obj[i]=arr[i];
}
alert(obj.js);

 

JS语言的动态特性非常灵活,可以给对象动态的增加新的属性或者方法,即便是对数组也是可以动态增加其个数。所以上面的这个小代码片段是完全可以运行的,继续往下看

 

var arr=[];
arr['js']='jquery';
arr['css']='oocss';
var obj={};
for(var i in arr)
{

    obj.i=arr[i];
}
alert(obj.js);

这个运行结果是"undefined",其实这段代码和上面的就一个差别,obj[i]和obj.i的区别,前面的博文中说过对一个对象的属性进行访问的时候是可以通过数组的形式obj[i]和对象属性的形式obj.i,其实两者还是稍微有点区别的,上面的例子就很明显。

 1, .是用对某个确定的属性名的访问
 2, []里面可以添加不确定的属性

所以第二个只能获取obj.i的值,可以跟踪下,obj.i='oocss';当然也可以借助eval函数强制完成,下面的代码也是可以的:

 

 var arr = [];
        arr['js'] = 'jquery';
        arr['css'] = 'oocss';
        var obj = {};
        for (var i in arr) {

                        eval("obj." + i + " =arr['" + i + "']"); //
        }

 

 

 

 

对象是由类来产生的,一个对象实际是上包含方法和属性的集合,在JS中可以通过JSON对象来表示,也就是Key-Value的形式,看下我们浏览器调试的时候,浏览器给我们的结果:

 

 

 

相关文章
|
1月前
|
前端开发 JavaScript Java
除了变量提升,JavaScript还有哪些特性?
【4月更文挑战第4天】JavaScript 特性包括函数作用域、动态类型、原型继承、异步编程、高阶函数、箭头函数、严格模式、对象字面量、模块系统和垃圾回收。这门语言支持多种编程模式,适合各种应用场景。想深入了解某特性,欢迎提问!😄
24 6
|
4月前
|
JavaScript 前端开发
实现一个JavaScript动态日期功能
实现一个JavaScript动态日期功能
|
14天前
|
存储 JavaScript 前端开发
【JavaScript技术专栏】ECMAScript 6+新特性详解
【4月更文挑战第30天】ES6(ES2015)标志着JavaScript的重大更新,引入了类和模块、箭头函数、模板字符串、解构赋值、Promise、新数据类型Symbol、Set和Map集合等特性,提高了语言表达力和开发效率。后续版本继续添加新特性,如ES2016的`Array.prototype.includes`,ES2017的`async/await`,以及ES2018的`Object/rest`。学习和掌握这些特性对于提升开发质量和效率至关重要。
|
15天前
|
JavaScript 前端开发
实现一个JavaScript动态日期功能
实现一个JavaScript动态日期功能
|
15天前
|
JavaScript 前端开发
【专栏】`Function.prototype.apply` 在JavaScript中用于动态设定函数上下文(`this`)和参数列表
【4月更文挑战第29天】`Function.prototype.apply` 在JavaScript中用于动态设定函数上下文(`this`)和参数列表。它接受两个参数:上下文对象和参数数组。理解`apply`有助于深入JS运行机制。文章分三部分探讨其原理:基本概念和用法、工作原理详解、实际应用与注意事项。在应用中要注意性能、参数类型和兼容性问题。`apply`可用于动态改变上下文、传递参数数组,甚至模拟其他语言的调用方式。通过深入理解`apply`,能提升代码质量和效率。
|
22天前
|
JavaScript 前端开发 Linux
JavaScript 的跨平台特性
【4月更文挑战第22天】JavaScript 的跨平台特性
24 8
|
29天前
|
JavaScript 前端开发
JavaScript DOM 操作:如何检测浏览器是否支持某个特性?
【4月更文挑战第15天】使用Modernizr库检测浏览器特性:添加 `<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script>` 到HTML,然后通过 `Modernizr.localstorage` 进行检测,如支持localStorage则执行相应代码,否则执行备用逻辑。
18 0
|
1月前
|
前端开发 JavaScript 数据可视化
使用JavaScript实现复杂功能:动态数据可视化的构建
使用JavaScript实现复杂功能:动态数据可视化的构建
|
1月前
|
存储 JavaScript 前端开发
JavaScript中的复杂功能实现:一个动态表单生成器
JavaScript中的复杂功能实现:一个动态表单生成器
|
1月前
|
人工智能 前端开发 JavaScript
【前端设计】HTML+CSS+JavaScript基本特性
【前端设计】HTML+CSS+JavaScript基本特性