• javascript权威指南笔记学习


        //返回了一个继承自原型对象p的属性的新对象
        function inherit(p){
            if (p ==null) throw TypeError();
            if (Object.create){
                return Object.create(p);
            }
            var t=typeof p;
            if (t!=="object"&&t!=="function") throw TypeError();
            function f(){};
            f.prototype=p;
            return new f();
        }

    属性访问错误

    属性访问并不总是返回或设置一个值。查询一个不存在的属性并不会报错,如果在对象o自身的属性或继承的属性中均未找到这个属性x,属性访问表达式o.x返回undefine。回想一下我们的book对象有属性“sub-title”,而没有属性“subtitle”:

    book.subtitle    undefined

    试图查询这个不存在的对象的属性就会报错。null和undefined值都没有属性,因为查询这些值的属性会报错,接上例:

    //抛出一个类型错误异常,undefined没有length属性

    var len=book.subtitle.length;

    除非确定book和book.subtitle都是(或在行为上)对象。否则不能这样写表达式book。subtitle.length,因为这样会报错,下面提供了两种避免出错的方法。

    var len=undefined;

    if(book){

       if(book.subtitle) len=book.subtitle.length;

    }

    var len=book&&book.subtitle&&book.subtitle.length;

    //判断类型

    function classof(o){
    if(o===null){retuen "Null"}
    if(o===undefined){return "Undefined"}
    return Object.prototype.toString().call(o).slice(8,-1)
    
    } 
      function inherit(p){
            if (p ==null) throw TypeError();
            if (Object.create){
                return Object.create(p);
            }
            var t=typeof p;
            if (t!=="object"&&t!=="function") throw TypeError();
            function f(){};
            f.prototype=p;
            return new f();
        }
     function range(from,to){
            var r=inherit(range.method);
            r.from =from;
            r.to=to;
            return r
     }
     range.method={
         include:function(x){
             return this.from<=x&&this.to>=x;
         },
         foreach:function(f){
             for (var x=Math.ceil(this.from);x<=this.to;x++)
                 f(x)
         },
         toString:function(){
             return  "("+this.from +'...'+this.to+')';
         }
     }
     var r= range(1,3);
     console.log(r.include(2));
     r.foreach(console.log);
     console.log(r);
     var b=range(2,4);
     console.log(b);
     console.log(r)

    //上面这段代码有利于深入了解inherit这个函数,由函数生成的对象的是一个具有自己地址的对象。

    function type(o){
        var t,c,n;
        if (o==null) return "null";
        if (o!==o) return "nan";
        if (t = typeof o!=="object") return t;
        if ((c = classof(o))!=="Object") return c;
        if (o.constructor&&typeof o.constructor==="function"&&(n = o.constructor.getName()))
            return n;
        return "Object"
    };
    Function.prototype.getName =function(){
        if ("name" in this) return this.name;
        return this.name=this.toString().match(/functions*([^(]*)(/)[1]
    }
    function classof(o){
    return Object.prototype.toString.call(o).slice(8,-1); 
    }

     

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         

    //赋值失败,但没报错,Object.prototype没有修改

    删除属性

    delete运算符,

    delete book.author

    delete book["main title"]

    ---恢复内容结束---

        //返回了一个继承自原型对象p的属性的新对象
        function inherit(p){
            if (p ==null) throw TypeError();
            if (Object.create){
                return Object.create(p);
            }
            var t=typeof p;
            if (t!=="object"&&t!=="function") throw TypeError();
            function f(){};
            f.prototype=p;
            return new f();
        }

    属性访问错误

    属性访问并不总是返回或设置一个值。查询一个不存在的属性并不会报错,如果在对象o自身的属性或继承的属性中均未找到这个属性x,属性访问表达式o.x返回undefine。回想一下我们的book对象有属性“sub-title”,而没有属性“subtitle”:

    book.subtitle    undefined

    试图查询这个不存在的对象的属性就会报错。null和undefined值都没有属性,因为查询这些值的属性会报错,接上例:

    //抛出一个类型错误异常,undefined没有length属性

    var len=book.subtitle.length;

    除非确定book和book.subtitle都是(或在行为上)对象。否则不能这样写表达式book。subtitle.length,因为这样会报错,下面提供了两种避免出错的方法。

    var len=undefined;

    if(book){

       if(book.subtitle) len=book.subtitle.length;

    }

    var len=book&&book.subtitle&&book.subtitle.length;

    //判断类型

    function classof(o){
    if(o===null){retuen "Null"}
    if(o===undefined){return "Undefined"}
    return Object.prototype.toString().call(o).slice(8,-1)
    
    } 

     

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         

    //赋值失败,但没报错,Object.prototype没有修改

    删除属性

    delete运算符,

    delete book.author

    delete book["main title"]

  • 相关阅读:
    mysql启动报错:Failed to start LSB: start and stop MySQL
    springboot学习源码
    A query was run and no Result Maps were found for the Mapped Statement
    mybaties报错:There is no getter for property named 'table' in 'class java.lang.String'
    redis.clients.jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set
    Missing artifact com.lowagie:itextasian:jar:2.1.7
    Vue.js安装及环境搭建
    高并发与多线程
    NoNodeAvailableException[None of the configured nodes are available:[.127.0.0.1}{127.0.0.1:9300]
    oracle中sys用户下all_tables表个字段说明
  • 原文地址:https://www.cnblogs.com/heyinwangchuan/p/6680492.html
Copyright © 2020-2023  润新知