javascript的一些基础

当复制的两个变量的地址不同时他们是不相等的如下代码所示

function getFunction(value){
  return function(value){
        return value;
    }  
}

var a=getFunction(),
      b=getFunction(),
      c=getFunction();

console.log(a==b)  //false

当定义一个独立函数时,this关键字绑定于全局名称空间。作为一个最直接的结果,挡在一个方法内创建一个内部函数时,内部函数的this关键字将绑定于全局名称空间,而不是绑定于该方法,为了解决这一问题可以将包裹的方法this关键字简单地赋值给一个名为that的中间变量。代码如下

obj = {};
obj.method = function(){
  var that = this;
  this.counter = 0;
  var count = function(){
       that.counter += 1;
       console.log(that.counter);  
    }
     count();    //调用count函数    1
     count();    //调用count函数    2
     console.log(this.counter);     //因此这里就是2了
}
      obj.methos();      //1 2 2

在javascript要使用私有方法或属性就要使用闭包了

function timemachine(){
    //私有成员
    var destination = "a,b";
    //公有成员
    this.getDestination = function(){
        return destination;
    }
}
var delorean = new timemachine();
console.log(delorean.getDestination());  //a,b
console.log(deloreon.destination);    //undifine

  

  

原文地址:https://www.cnblogs.com/lixiaoxing/p/5102891.html