JavaScript(以下称为 js )对象只是一组有命名值(也称为属性)集合的容器:对象只是属性的容器,每个属性都有一个名称和值。
<!DOCTYPE html> var liux = new Object(); liux .age = 22; liux .marriage = false; liux .gender = " female" ; console.log( liux ) ; // 输出 Object {age: 22, marriage: false, gender: " female"} var myString = new String ( ' String ' ) ; var myStr = ' Str ' ; console.log( myStr ); //输出 'Str' ;输出 myStr [0] 得到 “S” </script> |
js(JavaScript)实际上是一种预装包若干原生对象构造函数的语言。这些构造函数生成一些表达特定类型值(如 数字、字符串、函数、数组、对象等)的复杂对象,也可以过Function()对象创建自定义的对象构造函数(如上述例子中的 Person ())。不管是否是用于创建对象的模式,最终的结果通常都是创建一个复杂的对象。在 js 中,大多数值(不包括原始值)都涉及正在被创建的对象,或者是从构造函数实例化的对象。构造函数返回的对象称为实例。
构造函数的作用是创建多个共享特定特性和行为的对象。构造函数主要是一种用于生成对象的饼干模具,这些对象具有默认属性和属性方法。
上面例子中,自定义的 Person() 构造函可以输出 person 对象,就像是 js 原生 String() 构造函数可以生成字符串对象一样。 并且 Person() 构造函数的能力和延展性并不比原生的 Sstring() 构造函数或者 js 中的其他的构造函数差。而 getGender 方法是 liq 对象的属性,用于返回 liq 其他属性的值。如储存在 gender 属性中的 "male"。如果没有方法,那么对象除了用来存储静态属性外没有其他的用途了。 在 liq 和 liux 虽然生成出来的属性和属性方法相同,但是生成对象的构造函数不同。liux 对象是使用 Object() 构造函数实例来产生的,而 Person() 创建了 liq ,但也可以把 Person() 当成一个强大的、集中第一的对象 “工厂” ,用于更多的 Person() 对象。为自定义对象创建自定义函数的同时,也为 Person() 实例创建了原型继承。这两个模式最常用语构造对象。
通过对比 myString 和 myStr ,可以发现,不用 new ,而是采取“字面量”的快捷方式方式,其实效果是相同的,而且更加方便。但在原始字符串、数字、布尔值方面,事情就变得更加复杂了。在这种情况下,字面量值具有原始特点,而不是复杂对象值的特点。原始值不是对象,原始值得特殊之处在于是用于表示简单值。
注:小七目前还是小白,写的博客为笔记类型的博客,是在项目中遇到的问题,仅用于学习。
如果内容有不对、不全面或者其他的问题,欢迎大家纠正。