zoukankan      html  css  js  c++  java
  • 夺命雷公狗---javascript NO:25 属性的遍历、删除与成员方法

    1、属性的遍历

    在实际项目开发中,我们得到一个对象,如果想知道其包含了哪些属性或方法,那么可以使用for…in…循环语句进行遍历输出。

    示例代码:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset=’utf-8′>
    <title></title>
    </head>
    <body>
    <script>
    //定义一个Persion类
    function Person(){}
    //创建一个自定义对象
    var p1 = new Person();
    p1.name = ‘zhangsan';
    p1.age = 22;
    p1.email = ‘123@163.com';
    //遍历p1对象输出其属性
    for(var i in p1){
    document.write(p1[i]+'<br/>’);
    }
    </script>
    </body>
    </html>

    2、for…in…其也可以遍历系统对象

    示例:

     
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset=’utf-8′>
    <title></title>
    </head>
    <body>
    <script>
    for(var i in document){
    document.write(i+'<br/>’);
    }
    </script>
    </body>
    </html>
     

    3、删除自定义属性

    在我们传递对象的过程中,我们可能并不需要某些自定义属性,那么我们可以通过delete关键词对其删除:

    delete 自定义对象.属性;

    示例代码:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset=’utf-8′>
    <title></title>
    </head>
    <body>
    <script>
    function Person(){}
    var p1 = new Person();
    p1.name = ‘lisi';
    p1.age = 23;
    p1.email = ‘123@qq.com';
    delete p1.age;
    for(var i in p1){
    document.write(p1[i]+'<br/>’);
    }
    </script>
    </body>
    </html>

    成员方法

    成员属性:对象的某个属性(静态的)如name、age、address

    成员方法:对象的某个行为(动态的)如speak、run

    例1:为对象定义成员方法

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset=’utf-8′>
    <title></title>
    </head>
    <body>
    <script>
    function Person(){}
    var p1 = new Person();
    p1.name = ‘lisi';
    p1.age = 23;
    //定义成员方法
    p1.speak = function(){
    alert(this.name+’—‘+this.age);
    }
    p1.speak();  // lisi–23
    var p2 = new Person();
    p2.name = ‘lisi';
    p2.speak = function(){
    alert(this.name);
    }
    p2.speak();
    </script>
    </body>
    </html>

    例2:简化以上代码

     
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset=’utf-8′>
    <title></title>
    </head>
    <body>
    <script>
    function say(){
    alert(this.name);
    }
    function Person(){};
    var p1 = new Person();
    p1.name = ‘lisi';
    p1.age = 23;
    //定义成员方法
    p1.speak = say;
    p1.speak();
    var p2 = new Person();
    p2.name = ‘zhangsan';
    p2.age = 25;
    p2.speak = say;
    p2.speak();
    </script>
    </body>
    </html>

    以上两种方法,都存在不足,我们每次定义属性或方法,都需要重复定义多次:

    1)容易写错

    2)代码冗余

    例3:封装以上代码,代码如下

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset=’utf-8′>
    <title></title>
    </head>
    <body>
    <script>
    //定义一个类
    function Person(name,age){
    this.name = name;
    this.age = age;
    //定义成员方法
    this.speak = function(){
    alert(this.name+this.age);
    }
    }
    var p1 = new Person(‘zhangsan’,22);
    p1.speak();
    var p2 = new Person(‘lisi’,25);
    p2.speak();
    </script>
    </body>
    </html>
  • 相关阅读:
    05-浮动/css
    04-选择器/css
    03-样式表/css
    02-html标签&表格&表单
    01-html基础&标签
    vue分页组件重置到首页问题
    VUE通过索引值获取数据不渲染的问题
    常见IE8兼容性问题及解决
    Ajax
    sea.js模块化工具
  • 原文地址:https://www.cnblogs.com/leigood/p/5031978.html
Copyright © 2011-2022 走看看