javascript-eleven(对象)

对象由属性和方法组成

创建对象(object)的三种方式
  • 利用字面量创建对象
  • 利用new object创建对象
  • 利用构造函数创建对象
 
<script>
        //利用对象字面量创建对象{}
        // var obj ={}//创建一个空对象
        var obj = {
            uname: 'zhang',
            age: 18,
            sex: '',
            sayhi: function () {
                console.log('hi~');
            }
        }
        //(1)里面的属性后者方法,我们采取键值对的形式 键 属性名 :值 属性值
        //(2)多个属性或者方法之间用逗号隔开
        //(3)方法冒号后面跟的是匿名函数
        //使用对象
        //调用对象的属性采取 对象名.属性名
        console.log(obj.uname);
        //还可以 对象名['属性名']
        console.log(obj['age']);
        //sayhi  对象名.方法名
        obj.sayhi();

    </script>
变量、属性、函数、方法的区别
变量和属性的相同的 他们都是用来存储数据得的
var num = 10;
        var obj = {
            age: 18
        }
        console.log(obj.age);
        console.log(age);
变量 单独声明并赋值 使用的时候直接写变量名 单独存在
属性 在对象里面的不需要声明的 使用的时候必须是 对象.属性
 
函数和方法的相同点 都是实现某种功能 做某件事
函数是单独声明 并且调用的 函数名() 单独存在的
方法 在对象里面调用的时候 对象.方法()
 
利用new object创建对象
var obj = new Object();//创建一个空的对象
        obj.uname = '张三丰';
        obj.age = 18;
        obj.sex = '男';
        obj.sayhi = function () {
            console.log('hi`~');
        }
        //利用等号赋值的方法添加对象的属性和方法
        //每个属性和方法之间用分号结束
        console.log(obj.uname);
        console.log(obj['age']);
        obj.sayhi();

构造函数

/因为我们创建一个对象,里面有很多属性和方法大量相同,我们只能复制
        //因此我们可以利用函数的方法重复这些相同的代码 我们就把这个函数成为构造函数
        //有因为这个函数不一样,里面封装的不同代码 而是对象
        //构造函数 就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面
            //利用构造函数创建对象
            //我们需要创建四大天王的对象 相同属性:名字年龄 性别 相同方法:唱歌
            function 构造函数名(){
                this.属性=值;
                this.方法=function(){}
            }
            new 构造函数名();

       function Star(uname, age, sex) {
            this.name = uname;
            this.age = age;
            this.sex = sex;
            this.sing = function (sang) {
                console.log(sang);
            }
        }
        var ldh = new Star('刘德华', 18, '男');
        console.log(typeof ldh);
        console.log(ldh.name);
        console.log(ldh['age']);

        var zxy = new Star('张学友', 58, '男');
        console.log(zxy.name);
        zxy.sing('吻别');
        //1.构造函数名字首字母要大写
        //2.我们构造函数不需要return就可以返回结果
        //3.我们调用构造函数必须使用new
对象:是一个具体的事物 刘德华
 
//遍历对象
var obj = {
            name: 'pink老师',
            age: 18,
            sex: '男',
            fn: function () {

            }
        }
        //for (变量 in 对象){}
        for (var k in obj) {
            console.log(k);//k 变量 输出 得到的是属性名
            console.log(obj[k]);//obj[k] 得到的是属性值
        }
        //我们使用for in 里面的变量我们喜欢

 

 
 
 
posted @ 2022-03-13 22:30  终究还是避免不了遗憾  阅读(37)  评论(0编辑  收藏  举报