面向对象的概念

// 原料
     function fn(){ //将这个函数中的this改变,指向new新创建的对象
         // 加工
         this.name = "root";
     }
    //     // 出厂
     var f = new fn();//创建了一个新对象
     var f2 = new fn();//创建了一个新对象
     console.log(f);//fn {name: "root"}

    console.log(f2)//fn {name: "root"}
     console.log(f == f2)//false

    // new的原理:
    //     1.创建了一个新的空对象
    //     2.将这个对象的__proto__和函数的prototype做连接
    //     3.将这个函数中的this改变,指向new新创建的对象
    //     4.检测函数有没有返回对象,没有返回对象,就返回new创建的对象

    // 工厂模式的模式是什么:
    //     设计模式之一:


    // 构造函数,构造自定义的函数,会在函数中使用this、找到被构造出来的对象
    // 隐患:一旦构造函数被直接执行,会错误的产生大量的全局变量
    // 解决隐患:解决不了
    // 自我约束:构造函数不要直接执行
    // 防止误操作:行业习惯:为了防止构造函数被直接执行,产生大量的全局变量,一般将需要被构造的函数的首字母大写,以此标志构造函数和正常函数的区别

     function Fn(){
         this.name = "root";
     }
     var f = new Fn()
     console.log(f.name)//root
    

     console.log(name)//空;

 

转载于:https://www.cnblogs.com/hy96/p/11447452.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值