• hasOwnProperty 递归 简单回调 链式调用


    1、hasOwnProperty 函数的返回值为Boolean类型。如果对象object具有名称为propertyName的属性,则返回true,否则返回false。

    function Box(){
        this.a="123";
    }
    var box1=new Box();
    box1.hasOwnProperty("a");    //返回true

    如果在原型上添加一个属性,则返回false

    // 想要查看对象(包括原型链)是否具备指定的属性,可以使用in操作符

    function Box(){
        this.a="123";
    }
    var box1=new Box();
    Box.prototype.abc="345"
    
    box1.hasOwnProperty("abc");    //返回false;
    "abc" in box1   // 返回true

    2、复习递归

    function box(num){
        if(num<=1){
            return 1;
        }else{
            return num*box(num-1);
        }
    }
    box(3);
    
    通过arguments.callee来调用函数本身
    
    function box(num){
        if(num<=1){
            return 1;
        }else{
            return num*arguments.callee(num-1);
        }
    }
    box(3);

    3、简单的回调函数

    function $(id){
        return document.getElementById(id);
    }
    Object.prototype.show=function(fn){
        if(fn && fn.constructor==Function){   //判断,有fn和fn是一个函数
            fn();    //直接执行
        }else{
        this.style.display="none";}
    }
    $("c").onclick=function(){
        this.show(function(){alert()});
    }
    //把li节点隐藏,利用回调方法 
    var appendDiv=function( callback){
      var li=document.getElementsByTagName('li');
      for(var i=0;i<li.length;i++){
        if(typeof callback==='function'){
          callback(li[i])
        }
      }
     }
     appendDiv(function(node){
      node.style.display='none';
     })

    4、链式调用

    function $(id){
            return new _$(id);
        }
        function _$(id){
            this.elements = document.getElementById(id);
        }
        _$.prototype = {
            constructor:_$,
            hide:function(){
                console.log('hide');
                return this;
            },
            show:function(){
                console.log('show');
                return this;
            },
            getName:function(callback){
                if(callback){
                    callback.call(this,this.name);
                }
                return this;
            },
            setName:function(name){
                this.name = name;
                return this;
            }
        }
        $('c').setName('xesam').getName(function(name){
            console.log(name);
        }).show().hide().show().hide().show();
  • 相关阅读:
    【零基础】极星9.5量化入门二:滚动止盈策略
    【零基础】极星9.5量化入门零:简单的开始
    今天分享下移动端rem 适配
    css超出内容省略号代替。
    今天给大家的小知识点是JS的一种排序方式---快速排序
    highcharts 的基本使用
    zTree jquery-zTree的基本使用
    克隆 JS克隆
    JS判断一个对象是不是数组的几种方式
    js 定时器实现倒计时
  • 原文地址:https://www.cnblogs.com/change-oneself/p/5379533.html
Copyright © 2020-2023  润新知