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

     

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

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

    内容为小七在工作中遇到或在其他地方看到所做的总结,方便以后查看,仅供学习使用; 转载请注明出处;
  • 相关阅读:
    hdu 4638 Group 线段树
    hdu 4635 Strongly connected 强连通分量
    hdu 4604 Deque
    hdu 1000 A + B Problem
    数组相关
    文本文件相关
    硬件电路中VCC,VDD,VEE,VSS有什么区别
    VIPM链接LabVIEW问题
    Touch实现轻扫
    touchesMoved 实现拖拽
  • 原文地址:https://www.cnblogs.com/xiaoxiaoqiye/p/5249129.html
Copyright © 2020-2023  润新知