for in 与 for of 的区别? es5 的面向对象和 es6 的面向对象?

for in 与 for of 的区别?

- For in 可以遍历对象 ⽽ for of 遍历对象会报错

- for in 遍历数组得到的数组的下表 ⽽ for of 遍历得到的时候数组⾥⾯的每⼀个元素

es5 的面向对象和 es6 的面向对象

es5 的面向对象是通过 new 一个构造函数实现的

let num = 10;
        let num2 = new Number(20);
        console.log(num, num2);
        // (
        // 在 js 中一切皆对象
        // 比如说数组 object number string 等等 这些都是内置对象

        // 那么怎么自定义对象
        // es5 的时候没有像后台语言一样的 class 这个概念 所以我们用函数当作构造函数来创建对象)
        // 在面向对象的写法中 属性放在函数里 方法放在原型上 这样就能实现属性私有 方法共享
        // 方法挂载在原型上就可以被所有的实例化对象使用
        // 在es5中当一个函数 被当作 创建面向对象的 构造器去用的时候 它就变成了一个构造函数 一般来说 首字母大写 通过new 关键字调用
        function Houyi(color) {
            this.color = color;
        }
        Houyi.prototype.kill = function() {
            alert("后羿会射箭,这个后羿的头发颜色是" + this.color);
        };
        let sundy = new Houyi("金色");
        let xiaoming = new Houyi("白色");
        // alert(sundy.color);
        // alert(xiaoming.color);
        sundy.kill();

es6 的面向对象是通过 class 实现的 es6 的 class 就是面向对象的语法糖(实现同样的功能 但是代码更少 更加简洁)

 // 在es6中有了class这个概念
        class Houyi {
            constructor(color) {
                    this.color = color;
                }
                //constructor这个单词本身就是构造器的意思 在new一个实例的时候 constructor会自动调用

            kill() {
                alert("这是后羿的大招,这个后羿的头发颜色是" + this.color);
            }
        }
        let sundy = new Houyi("红色");
        sundy.kill();

面向对象是一个概念或者编程思想,面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式

(在 js 中一切皆对象 比如说数组 object number string 等等 这些都是内置对象

那么怎么自定义对象

es5 的时候没有像后台语言一样的 class 这个概念 所以我们用函数当作构造函数来创建对象)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值