zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    绘制surfaceView 基础类
    globalfifo设备驱动
    Linux设备驱动中的异步通知与异步I/O
    ARM Linux字符设备驱动程序
    s3c2440串口裸板驱动(使用fifo)
    Linux内核结构分析与移植
    带头结点的单链表的初始化,建立,插入,查找,删除
    使用lombok时@Setter @Getter无效
    web 服务中上传文件大小控制
    Flyway 学习时遇到的错误
  • 原文地址:https://www.cnblogs.com/change-oneself/p/5379533.html
Copyright © 2011-2022 走看看