JavaScript 对象

  JavaScript(以下称为 js )对象只是一组有命名值(也称为属性)集合的容器:对象只是属性的容器,每个属性都有一个名称和值。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>构造函数</title>
<script type = "text/javascript">
var Person = function( age , marriage , gender ){
this.age = age ;
this.marriage = marriage ;
this.gender=gender ;
this.getGender = function () { return this.gender ; } ;
};
var liq = new Person ( 22 , false , ' male ' ) ;
console.log( liq ) ;   // 输出 person {age: 22, marriage: false, gender: "male"}

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 ' ) ;
console.log( myString );   //输出 String {0: "S", 1: "t", 2: "r", 3: "i", 4: "n", 5: "g", length: 6, [[PrimitiveValue]]: "Sreing"}

var myStr =  ' Str ' ;

console.log( myStr );  //输出 'Str'  ;输出   myStr [0]  得到 “S”

</script>
</head>
<body>
</body>
</html>

  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 ,而是采取“字面量”的快捷方式方式,其实效果是相同的,而且更加方便。但在原始字符串、数字、布尔值方面,事情就变得更加复杂了。在这种情况下,字面量值具有原始特点,而不是复杂对象值的特点。原始值不是对象,原始值得特殊之处在于是用于表示简单值。

 

 

注:小七目前还是小白,写的博客为笔记类型的博客,是在项目中遇到的问题,仅用于学习。

  如果内容有不对、不全面或者其他的问题,欢迎大家纠正。

 

posted @ 2016-09-26 10:39  小小七爷  阅读(227)  评论(0编辑  收藏  举报