最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 面向对象练习(函数的多种角色)

    正文概述 掘金(gggg434343_321)   2021-01-24   493

    1、在内置类的原原型上扩展方法

    (1) 调用起来方便,可以直接基于实例去调用方法,方法中的this就是实例「也就是我们要操作的值」

    (2)可以实现链式调用

    (3) 自己扩展的方法最好设置前缀“myXxx”,防止自己扩展的方法覆盖原始内置的方法

     let arr = [10, 20];
     console.log(arr.slice(1).map(item => item * 10).push('X').toFixed(2).split('.'));
    

    2、this在严格模式下都是对应的对象类型,非严格模式下是基本类型

    Number.prototype.plus = function plus(val) {
        val = checkVal(val);
        return this + val;
    };
    

    3、实现下面成立

    let n = 10;
    let m = n.plus(10).minus(5);
    console.log(m); //=>15(10+10-5) 
    
    封装:
    
    const checkVal = val => {
    val = +val;
    return isNaN(val) ? 0 : val;
    };
    Number.prototype.plus = function plus(val) {
        val = checkVal(val);
        return this + val;
    };
    Number.prototype.minus = function minus(val) {
        val = checkVal(val);
        return this - val;
    };
    

    4、函数的多种角色

    /*
     * 函数的多种角色
     *   + 函数
     *     + 普通函数「闭包作用域」
     *     + 构造函数「类、实例」
     *     + 生成器函数
     *   + 对象
     */
     
    

    (1)Array 面向对象练习(函数的多种角色)

    • Array既是一个函数,也是一个对象;是构造函数,同时也是Function的一个实例

    • Array.from 能够把类数组转换为数组

    面向对象练习(函数的多种角色)

    • Array.length属性代表的是我用这个构造函数的时候需要传入的实参个数
    • Array.name: 是构造函数的名字

    面向对象练习(函数的多种角色)

    • Array整体:

    面向对象练习(函数的多种角色)

    (2)Object

    面向对象练习(函数的多种角色)

    • 当作对象和函数的区别j

    面向对象练习(函数的多种角色)

    (3)Function

    • Function.prototype是一个匿名空函数;但是虽然是一个函数,确没有prototype属性

    而是和其它的构造函数的prototype一样

    面向对象练习(函数的多种角色)

    • Function图解

    面向对象练习(函数的多种角色)

    • 小知识

    没有prototype的函数(不能被new执行): + 箭头函数

    + Function.prototype 这个函数
    + es6快速创建的函数(QF函数)
    + 内置的函数,例如push、pop等函数
    

    函数是一等公民

    • 重点:

    Fuction是Function本身的一个实例

    面向对象练习(函数的多种角色)

    • 注意

    面向对象练习(函数的多种角色)

    • 拿Object.hasOwnProperty来举例子(这个在Object.prototype上面的一个属性)

    面向对象练习(函数的多种角色)

    • 查找机制:

    Object.hasOwnProperty === Object.--proto__.__proto--.hasOwnProperty

    Object.hasOwnProperty === Object.prototype.hasOwnProperty

    (4)总结

    面向对象练习(函数的多种角色)

    5、小题目

    function Foo() {
        getName = function () {
            console.log(1);
        };
        return this;
    }
    Foo.getName = function () {
        console.log(2);
    };
    Foo.prototype.getName = function () {
        console.log(3);
    };
    var getName = function () {
        console.log(4);
    };
    function getName() {
        console.log(5);
    }
    Foo.getName();
    getName();
    Foo().getName();
    getName();
    new Foo.getName();
    new Foo().getName();
    new new Foo().getName();
    

    面向对象练习(函数的多种角色)


    起源地下载网 » 面向对象练习(函数的多种角色)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元