码迷,mamicode.com
首页 > 编程语言 > 详细

javascript的一些基础

时间:2016-01-05 16:55:35      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

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

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的一些基础

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!