zoukankan      html  css  js  c++  java
  • 学习篇之函数就是对象

        var person = new Object();
                person.name = "bob";
                person.age = 34;
                person.job = "Software";
    
                person.sayName = function(){
                    alert(this.name);
            }
    
            // 对象字面量写法
            var person = {
                name:"zhs",
                age:32,
                job:"Software",
                sayName:function(){
                    alert(this.name);
                }
            }
            
            // 工厂模式
            function creatPerson(name,age,job){
                var o = new Object();
                o.name = name;
                o.age = age;
                o.sayName = function(){
                    return this.name
                }
                return o;
            }
            var p1 = new creatPerson("bob","220","清洁工");
            console.log(p1);
            
            // 构造函数模式 (有点 可以判断对象类型)
            function Person(name,age,obj){
                this.name = name;
                this.age = age;
                this.obj = obj;
                this.sayName = function(){
                    // alert(this.name);
                }
            }
            var pa1 = new Person("sos",44,"软件工程师");
            var pa2 = new Person("ccc",22,"软件工程师");
            console.log(pa2.constructor == Person); // true 检测对象类型
            console.log(pa2 instanceof Person) // true
            var o = new Object();
            o = pa1;
            Person.call(o,"aaa",55,"sss");
            console.log(o.sayName());
    
            // 原型模式
            function Ps(){}
            Ps.prototype.name = "asd";
            Ps.prototype.age = 34;
            var ps1 = new Ps();
            console.log(ps1.age); //34
    
            // hasOwnPrototype() 原型属性返回 false,实例属性返回 true
            // in 包含原型属性返回 true
            var ps2 = new Ps();
            ps2.name = "cacaca";
            console.log(ps2.name);
            console.log(ps2.hasOwnProperty("name")); // true
            console.log("age" in ps2); // true
            

        // 判断原型属性 函数 function hasPrototyperty(object,name){ return !object.hasOwnProperty(name) && (name in object); } var ps3 = new Ps(); ps3.name = "aaac"; // 实例属性 console.log(hasPrototyperty(ps3,"name")); // false
  • 相关阅读:
    百度之星2019 初赛一 题解
    [NOI2019]弹跳(KD-Tree/四分树/线段树套平衡树 优化建图+Dijkstra)
    [BZOJ2157]旅游(树链剖分/LCT)
    [BZOJ3230]相似子串(后缀数组)
    回文树/回文自动机(PAM)学习笔记
    [CF30E]Tricky and Clever Password(KMP+manacher)
    APIO2019题解
    代码大全
    算法竞赛常用资料整理
    手动修复 Flash CS3 简中化不完全问题
  • 原文地址:https://www.cnblogs.com/pangzi666/p/5627122.html
Copyright © 2011-2022 走看看