zoukankan      html  css  js  c++  java
  • 工厂方法创建对象

    原形函数之prototype

    当函数以构造函数形式调用时,他创建的对象都会有个隐藏属性我们称为原形函数,我们可以用__proto__访问该构造的原形对象

              function ff (){

             }

             var c = new ff()

    //prototype是函数的属性值,而__proto__是对象的属性值

             console.log(ff.prototype== c.__proto__) //True

    原形对象相当于一个公共区域,所有同一个类的实例都可以访问该原形对象,所以可以将对象中共有的内容存放到原形对象中去,当我们访问一个对象的属性或方法时候,会优先在自身找,如果没找到则去原形对象中寻找,找到则调用,创建构造函数时,将共有的属性或者方法统一添加到构造函数中的原形对象里去,不会影响全局作用域,如果自身方法或者属性需要覆盖,可以在对象中添加相同的方法和属性利用优先调用自身方法和属性的原理进行覆盖

             function fun(name){

    //            this.name = "alex"//原先构造函数写法

    //            this.age = 18

    //            sayname = function()

                  fun.prototype.name = name

                  fun.prototype.nature = function(){

                           alert(name + 111111)

                  }

             }

            

             var a = new fun("嘻嘻嘻")

             console.log(a.name)

             a.nature()

     

    in检查对象中是否含有某个属性时,如果对象中没有但是原形中有也会返回true,如果要检查方法中对象中本身是否含有该属性则用hasOwnproperty()这个方法

    function fun(){

    //            this.name = "alex"

    //            this.age = 18

    //            sayname = function()

             }

                  fun.prototype.name = "原形名字"

                  fun.prototype.nature = function(){

                  alert(111111)

                  }

             var a = new fun()

    //       console.log(a.name)

             a.nature()

             console.log("name" in a) //true

             console.log(a.hasOwnProperty("name"))  //false

  • 相关阅读:
    uboot nand erase 的显示错误修复
    Sougo for linux install.
    S3C6410移植uboot2010.3(2)基本的启动信息修改
    S3C6410移植uboot2010.3(4)uboot的dnw功能添加
    S3C6410移植uboot2010.3(3)正常化配置
    ubuntu乱码修复
    应老婆点(20070705 13:11:34)(新浪)
    克己慎独 2008923 13:32:00 (21ic)
    信任(20061229 14:16:32)(新浪)
    不要轻易承诺 2008926 14:42:00 (21ic)
  • 原文地址:https://www.cnblogs.com/Young-shi/p/10453528.html
Copyright © 2011-2022 走看看