• JavaScript中的面向对象【一】


    创建一个对象

        
    var MyObject = {
           name:'John',
           age:18
    }
    
      你可以看到:
    • 对象的名字为MyObject
    • 用{和}来定义对象
    • 通过逗号来分隔包含在对象中的元素(叫做属性)
    • 键值对通过分号分隔,如key:value

     

      对象可以包含任何数据,当然也可以包含其它对象。

           var MyObject02 = {
                name: 'John',
                age: 18,
                say: function () {
                    return this.name + '在说话°';
                },
                eat: function (name) {
                    return name + '在吃饭';
                },
                myObj: {
                    name: 'Jack',
                    age: 20
                }
            }
    

      

    访问对象的属性

       有 2 种方式可以访问一个对象的属性:

      1. 用方括号的形式,比如MyObject['age']
      2. 使用句号的形式,比如MyObject.name
     
      为了访问包含在myObj对象中的name属性,你可以:
      
    MyObject02.myObj.name
    //或者使用方括号的形式:
    MyObject02['myObj']['name']
    //句号形式与方括号的混合形式的使用也是可以的:
    MyObject02['myObj'].name
    MyObject02.myObj['name']
    

      一个使用方括号形式的情况是,在你想访问这个属性的时候预先不知道属性的名字是什么。而是在运行时定义在一个变量中:

    var name = 'name';
    alert(MyObject02.myObj[name]);
    

    调用对象的方法

      因为方法跟属性是一样的,只不过它是一个函数而已,可以像访问属性一样的访问方法:
    MyObject02.say()
    MyObject02.eat('Mary')
    MyObject02['eat']('Mary')
    

      

    改变对象属性/方法

      JavaScript 是一个动态语言;它可以允许你在任何时候改变已存在对象的属性和方法。这也包括添加新的属性或者删除它们。
      添加
    • 对象.属性 = value;
    • 对象.方法 = function(){….}
    • 对象.对象 = {…}
      删除
    • delete 对象.属性/方法/对象
            //定义一个空的对象
            var MyObject = {};
            //访问对象不存在的属性,返回结果是undefined
            alert(MyObject.name);
    
            //给对象添加一个属性
            MyObject.name = 'John';
            //给对象添加一个方法
            MyObject.say = function () {
                return this.name + '在说话';
            };
            //给对象添加一个对象
            MyObject.myObj = {
                name:'Jack',
                age:18
            }
    
            //访问对象
          alert(MyObject.name);
            alert(MyObject.say());
            alert(MyObject.myObj.name);
    
            //删除对象的属性
          delete MyObject.name;
            //访问已删除的属性将返回undefined
            alert(MyObject.name);
            alert(MyObject.say());
    

      

     

  • 相关阅读:
    [Machine Learning]Numpy
    [LeetCode]Valid Palindrome
    [LeetCode]Remove Linked List Elements
    [LeetCode]Reverse Linked List
    [LeetCode]Palindrome Number
    Spring绑定请求参数过程以及使用@InitBinder来注册自己的属性处理器
    servlet温故知新
    线程池简单实现
    JAVA NIO学习笔记
    XSS攻击简单介绍
  • 原文地址:https://www.cnblogs.com/xinlingblog/p/2420176.html
Copyright © 2020-2023  润新知