浅谈Js对象的概念、创建、调用、删除、修改!

时间:2022-03-31 16:32:37

一、我们经常困惑,对象究竟是什么,其实这是一种思维,一种意识上的东西,就像我们都说
    世界是有物质组成的道理一样,理解了下面的几句话!对象也不是那么抽象!
    1.javascript中的所有事物都是对象,字符串、数值、数组、函数!
    而且js还允许自定义对象!
    2、对象就只是带有属性和方法的特殊数据类型
    3、属性是与对象相关的值,方法是能够在对象上执行的动作!

其实在这里的时候我们应该就有一个疑问要解决了,我们说函数是一个对象,为什么?
    很简单,js中所有的事物都是对象,函数自然包括在内,而且函数有自己的属性个方法,这更加验证了这一点!

我们对函数的属性和方法还是有疑问,函数到底是用来干嘛的?答案在这里:函数可以封装,可以调用,这是个什么概念,
    有了这个东西,我们就可以写很多共用的东西了!

我们学习对象的基本功应该学会一下几点:

// 一.创建对象的方式:
        // 1、直接创建:person = new Object()!直接创建了一个对象给了person!
        // 2、使用函数对象构造器创建:其实就是创建函数(在js中,this通常指的是我们正在执行的函数本身,或者是指向该函数运行时所属的对象!)
        // function person(firstname,lastname,age,eyecolor)
        // {
        // this.firstname=firstname;
        // this.lastname=lastname;
        // this.age=age;
        // this.eyecolor= function(){ alert("this is" + this.name + ".")};
        // }
        // 3、使用Json创建!
        // person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};这种样式也是在创建对象!
       
        // 对象的属性,我们可以添加,添加对象的方法其实就是附加在对象的上的函数!

// 二.针对第二种函数式的对象创建:这种方式的所有操作都需要先new出一个my对象,这个对象就是一个普通对象!
        // var my = new person();
        // 1、调用:
        // 使用属性:alert(my.firstname);
        // 调用方法:my.eyecolor();
        // 2、修改:
        // 修改属性:my.age = 18;
        // 3、增加:
        // my.name = "nihao"
        // 4、删除:
        // delete hero.name;

// 另一种常见实例:

// var hero = {
        // name : "zhangwuji",
        // age : 18,
        // tel : 1388888888,
        // sayMe : function()
        // {
        //     alert("this is zhangwuji.");
        // }
        // }

// 1 调用
        // alert(hero.name);
        // hero.sayMe
        // alert(hero['name']);
        // hero['sayMe']

//2 修改
        // hero.name = "zhouzhiruo";
        // alert(hero.nam
        // hero.sayMe = function(){
        //     alert("this is zhouzhiruo.")
        // }
        // hero.sayMe

//3 增加
        // hero.value = "zhouzhiruo";
        // alert(hero.value);
        // hero.sayVal = function(){
        //     alert("zhangwuji's value is zhouzhiruo.");
        // }
        // hero.sayVal

//4 删除
        // delete hero.name;
        // alert(hero.name);
        // delete hero.sayMe;  只有调用函数需要有()
        // hero.sayMe
        // var method = {
        //     add : function(a,b){
        //         return a + b;
        //     }
        // }    
        // alert(method.add(1,2));