zoukankan      html  css  js  c++  java
  • 检测对象类型的两种方式,constructor属性和instanceof

    //本例是为了记录检测对象类型的两种方式,即constructor属性和instanceof操作符。详见《高三》P145
            function Person(name, age, job) {
                this.name = name;
                this.age = age;
                this.job = job;
                this.say = function () {
                    alert("hi,i'm " + name + "!");
                }
            }

            var person1 = new Person("kitty", 18, "Student");
            var person2 = new Person("wede", 29, "SoftWare");

            //利用constructor属性检测对象类型
            alert(person1.constructor == Person);  //true
            alert(person2.constructor == Person);  //true

            //利用instanceof操作符检测对象类型
            alert(person1 instanceof Person);  //true
            alert(person2 instanceof Person);  //true

            /********************************************************************************/

            //利用instanceof操作符同样也能检测到继承自Object基类的所有类型,比如这样:
            alert(person1 instanceof Object); //true
            alert(person2 instanceof Object); //true
            //对比constructor属性,可以看出,constructor属性的值为对象的直接父级
            alert(person1.constructor == Object); //false
            alert(person2.constructor == Object); //false

            //本例是上面示例的补充,意在说明函数的重构
            //详见《高三》P147
            function Person(name, age, job) {
                this.name = name;
                this.age = age;
                this.job = job;
                this.say = say; //注意,这里将外部函数say的作用域指向了函数内部
            }

            function say() {
                alert("Hello,I'm "+this.name+","+this.age+" years old,i'm a "+this.job);
            }

            var person1 = new Person("kitty", 18, "Student");
            var person2 = new Person("wede", 29, "SoftWare");

            person1.say();
            person2.say();

  • 相关阅读:
    Oracle学习 第25天 Oracle版的Profiler
    Oracle学习 第24天 .net EF连Oracle
    项目中各子系统之间数据交互的方法总结与心得
    Python学习 第7天 爬虫-1 构思
    Oracle学习 第23天 Oracle视图、表、SqlServer、excel、csv的互导
    Python学习 第6天 类、模块、包
    Python学习 第5天 函数
    Javascript/Jquery实现日期前一天后一天
    Javascript/Jquery遇到字符串自动NaN的问题
    Eclipse打包jar
  • 原文地址:https://www.cnblogs.com/zhaow/p/9754449.html
Copyright © 2011-2022 走看看