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

  

  

上一篇:javascript with关键字简单用法


下一篇:Lake Counting_深度搜索_递归