企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
对象的情况和数组比较像,不同的是,他的键值类型是自定义的。也就是说,索引方式不局限于数字了,可使用另外一些更人性化的键值。如age等。 ~~~ //对象文本标识法 var xiao={ name:'xiaoming', age:12 }; ~~~ 变量名,括号,逗号分割,键值冒号分割。 下面的情况下,属性名加括号: 1.属性名是js保留字之一。 2.属性名包含空格或其他特殊字符。 3.属性名以数字开头的话。 数组中的元素,与对象中的属性,技术术语不同。 对象的属性也可是一个函数,函数本身也是一种数据,这种情况下,我们称该属性为方法。 一般性数组:索引型数组,枚举型数组,通常以数字为键值。 关联型数组:哈希表。常以字符串为键值。 js中用数组 表示索引型数组,用对象表示关联型数组。 *若要访问的属性是不确定的,必须用中括号表示法,他允许在运行时通过变量来实现相关属性的 动态存取。* **通过构造器函数创建对象** 好处在于:可以在创建对象时接收一些参数。 ~~~ function Hero(){ this.name="daer"; } var hero=new Hero(); hero.name; //"daer" ~~~ ![](https://box.kancloud.cn/3b8de079264dab6b3f509e61338bff13_738x413.png) 构造器属性,实际上是一个指向用于创建该对象的构造器函数的引用。 由于构造器属性所引用的是一个函数,故可利用其创建一个其他对象。 如果对象是通过对象文本标识法创建的,那么实际上它是由内建构造器Object()函数所创建的。 **instanceof** 测试*一个对象是否由某个指定的构造器函数所创建*。 ~~~ function Hero(){} var h=new Hero(); var o={}; h instanceof Hero; true h instanceof Object; true o instanceof Object; true ~~~ **传递对象** 当我们拷贝某个对象或者将它传递给某个函数时,往往传递的都是该对象的引用,因此在引用上所作的任何改动,实际上都会影响它所引用的原对象。