js认识对象

万物皆对象

js是一门什么样的语言?
是一门解释性的语言;
是一门脚本语言;
是一门弱类型语言(声明变量都用var);
是一门基于对象的语言
一门动态语言(对象里面没有什么,通过点语法,就可以为对象添加属性和方法了)

什么是对象?
1.具体特指的是某一个事物拥有的属性和方法;
2.是一组无序属性的集合(里面的存放是没有顺序的,很多东西放在一起)
对象有属性与方法:
属性可指某一个事物的特征(如:名字,颜色,年龄);
而方法就是那个事物的行为(如:吃,睡,玩);

编程思想:
面向过程:事事亲力亲为,注重的是过程
面向对象:提出需求,找对象,让对象为我们做事,注重的是结果;
面向对象的特征:封装,继承,多态(抽象性)
封装:把一些重用的代码进行包装,放到某个地方,需要时直接调用
继承:指类与类的概念;
要明确js不是面向对象的语言,而是基于对象的语言;
由于js没有类的概念,所有没有继承和多态,但可以模拟面对对象的思想;

面向对象的思想:就是抽象过程===+创建对象实例化过程
{Person:
特征:名字,年龄,性别
行为:吃,喝,玩
}
这个分析的过程,包含在代码中体现,所有对象共同的特征/特点统一到一起,这都是抽象过程;
再通过实例化对象就可模拟真实事件;

对象是通过构造函数创建的
所以,在js中所有的构造函数都是虚拟的东西,而真正能看到的是实例化的对象;

创建对象的三种方式
1.调用系统的构造函数创建对象

// 调用系统的构造函数
    var bb=new Object();
    bb.name="雨来";
    bb.age=25;
    bb.eat=function () {
        console.log("喜欢吃大蒜");
    };

2字面量创建对象

 //字面量对象
    var per1={
        name:"溢达",
        age:8,
        eat:function () {
            console.log("喜欢吃大西瓜")
        },
        read:function () {
            console.log("喜欢看书")
        },
        say:function () {
            console.log("我叫"+this.name);
        }
    };
    console.log( per1);
    per1.eat();
    per1.read();
    per1.say();

3.自定义构造函数创建对象

  //自定义构造函数
    function Person(name,age) {
        this.name=name;
        this.age=age;
        this.eat=function () {
           console.log("他更变态,喜欢吃辣椒");
        }
    }
   // 实例化对象,并初始化
    var per4=new An("夏红",22);
    console.log(per4);
    per4.eat();

4.结合系统构造函数和自定义构造函数通过工厂模式创建对象
(自定义构造函数里面是包含工厂模式的)

//工厂模式
    function person(name,age) {
        var cs=new Object();
        cs.name=name;
        cs.age=age;
        cs.play=function () {
            console.log("喜欢遛狗");
        };
        return cs;
    }

对比自定义构造函数 和 工厂模式构造函数:
同:都是函数,都可以传参,都可以创建对象

不同:
工厂模式构造函数:
1.函数名是小写(首字母)
2.有返回值
3.有new
4.直接调用函数就可以创建对象

自定义构造函数:
1.函数名是大写(首字母);
2.没有返回值
3.通过new的方式来创建对象
4.this是当前对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值