圣杯模式,对象枚举,例题

继承:圣杯模式

function inherit(Target,Origin){

         function F(){}

         F.prototype = Origin.prototype;

         Target.prototype = new F()

         Target.prototype.constructor = Target;

         Target.prototype.uber = Origin.prototype;

        }

        

        Father.prototype.lastName = "Deng"

        function Father(){}

        function Son(){}

        

        inherit(Son,Father);

        var son = new Son()

        var father = new Father()

 

 

  var obj = {

        name :"13",

        age : 123,

        sex : "male",

        height : 180,

        weight : 75

        }

        

        for (var key in obj)

        console.log(obj[key])

注意最后一行,应该使用obj[key],而不能使用obj.key访问对象属性的值,因为obj.key = obj[“key”],方括号里面是字符串。

 

 

 

 

 

 

 

 

var obj = {

        name :"13",

        age : 123,

        sex : "male",

        height : 180,

        weight : 75,

        _proto_:{

         lastName : "deng"

          }

        }

        for (var prop in obj){

        if(obj.hasOwnProperty(prop)){

          console.log(obj[prop])

           }

        }

obj.hasOwnProperty()用来检测obj里面的属性到底是obj的属性还是obj原型的属性

in操作符用来检测,属性是否在对象上。eg:

   “height” in obj

注意属性height用“ ”字符串表示

A instanceof B

instanceof操作符用来检测:A对象的原型链上有没有B的原型

 

arguments:argumengts身上只有callee和lenth属性

  arguments.callee:指向自身引用。

 

 

 

 

 

 

 

 

 

This

  1. 函数预编译过程: this——>window
  2. 全局作用域里:this——>window
  3. call/apply可以改变函数运行时this的指向
  4. obj.func();func()里面this指向obj。简而言之,谁调用的this,this就指向谁。

 

 

实现克隆的方法:

  1. 判断是不是原始值
  2. 判断是数组还是对象
  3. 建立相应的数组或对象

 

 

   判断是数组还是对象的方法:instanceof toString construtor

 

   条件判断 ? 是 : 否 并且会返回值

 

 

posted @ 2017-12-10 16:50  追丨追  阅读(534)  评论(0编辑  收藏  举报