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();

  • 相关阅读:
    转-容器技术发展现状
    flume自定义sink
    查看jar包里面是否看有一个文件
    flume source spooldir
    flume sink kafka
    mac配置mysql
    Mac 下卸载mysql
    mysql定时任务
    mysql 触发器和自定义函数
    mysql自定义函数 Unknown system variable 'result'
  • 原文地址:https://www.cnblogs.com/zhaow/p/9754449.html
Copyright © 2011-2022 走看看