zoukankan      html  css  js  c++  java
  • new命令简化的内部流程

    构造函数返回对象的一些问题:

    function fn(name,age){
            this.name = name;
            this.age = age;
            //return 23; 忽略数字,直接返回原有对象
            //return {};如果是对象直接顶替原有默认返回的对象
            //如果没有return 则默认返回对象
        }

    new命令简化的内部流程,可以用下面的代码表示

    function _new(/*构造函数*/constructor,/*构造函数参数*/params){
            /*把参数转化为数组*/
            var args = [].slice.call(arguments)
            /*分理出构造函数*/
            var constructor = args.shift()
            /*创建一个空对象,并继承构造函数的原型*/
            var context = Object.create(constructor)
            /*执行构造函数*/
            var result = constructor.applay(context,params)
            //返回结果对象,就直接返回,否则返回 context 对象,如果构造函数有return 返回值,则result有值
            return (typeof result === 'Object' result != null) ? result : context 
        }
  • 相关阅读:
    html基础笔记
    webpack实用配置总结
    Vue生命周期
    Vue跨域解决方法
    日历
    绝对地址和相对地址
    HTML+CSS要点
    (利用DOM)在新打开的页面点击关闭当前浏览器窗口
    前端面试
    前端工程师的知识体系
  • 原文地址:https://www.cnblogs.com/jokes/p/9712633.html
Copyright © 2011-2022 走看看