zoukankan      html  css  js  c++  java
  • 菜鸟快飞之JavaScript对象、原型、继承(一)

      有前辈说过,在JavaScript中,一切皆对象。由此可见,作为JavaScript的核心之一,对象是有多么重要。虽然今天走亲戚有点累,但还是得写写这个对象,免得吃几天好的,就又忘光了。

    1.创建对象

      通过内置对象创建:

    var obj1 = new Object();
    typeof obj1; // object
    
    var obj2 = new Array();
    typeof obj2; // object
    
    var obj3 = new String();
    typeof obj3; // object

      通过字面量创建:

    var obj = {
        name: '非鱼',
        age: 22,
        msg: function() {
            console.log('我叫' + this.name + ',今年' + this.age + '岁。');
        }
    };
    obj.msg(); // 我叫非鱼,今年22岁。

      通过函数创建:

      对于刚接触JavaScript的朋友来讲,前面两种方法可能非常熟悉了,但是对于这第三种可能有些陌生。我一直觉得对于一个问题,我们要知其然,也要知其所以然,所以虽然我也没怎么用过,但是还是去查了一下原因。

      其实原因很简单,通过函数来创建对象,就是为了复用,以及减少代码的大量重复,还是举个例子。

      我们需要创建小明和小红两个对象,如果使用字面量方式创建,会是下面这样:

    var xiaoming = {
        name: '小明',
        age: 22,
        hello: function() {
            console.log('大家好,我叫:' + this.name);
        }
    };
    xiaoming.hello();
    
    var xiaohong= {
        name: '小红',
        age: 20,
        hello: function() {
            console.log('大家好,我叫:' + this.name);
        }
    };
    xiaohong.hello();

      从上面就能看出来,两个对象除了值不一样外,其余都一样,所以我们为了避免重复,就需要用到通过函数的方式。还是接着上面的小明小红:

    function Person(name,age){
        this.name = name;
        this.age = age;
        this.hello = function() {
            console.log('大家好,我叫:' + this.name);
        }
    }
    var xiaoming = new Person('小明',22);
    xiaoming.hello();
    
    var xiaohong = new Person('小红',20);
    xiaohong.hello();

      这只是一个小栗子,对于越复杂的问题,效果越是明显。

      通过函数来创建对象,有几种模式,其中涉及到原型,所以就干脆放到后面讲。

    2.访问对象属性

    var person = { 
        name:  '张三', 
        age: 26, 
        gender:  '男',
     }; 
    person.name; // 通过点表示法访问
    
    var name2 = 'name';
    person[name2] = '李四'; // 方括号方式访问,优点是可以通过变量访问
  • 相关阅读:
    关于容器和里面元素的间距的排版技巧
    Grafana 通过api create&update dashboard
    .net(c#)生成xml并输出(api的设计)
    Ajax学习总结
    网站内容更新之伪原创七绝招
    并发和多线程(十九)ConcurrentHashMap源码解析(jdk1.8) Diamond
    分布式事务(一)分布式事务理论基础 Diamond
    分布式事务(二)事务基础ACID隔离级别MVCC Diamond
    并发和多线程(十八)CountDownLatch、Semaphore和CyclicBarrier源码解析 Diamond
    分布式事务(三)XA、2PC、3PC Diamond
  • 原文地址:https://www.cnblogs.com/mcbai/p/5185811.html
Copyright © 2011-2022 走看看