相关疑难解决方法(0)

javascript var vs this

如果我的代码看起来像这样,使用var vs这个的首选方法是什么?

function MyObject() {
    var self = this;

    var a = 1;
    this.b = 2;

    var innerMethod = function() {

        logMessage(a); 
        logMessage(self.b); 
    }
}
Run Code Online (Sandbox Code Playgroud)

据我所知,只要MyObject存在,var就会存活下来,所以这和使用它一样吗?

编辑:

为了更清楚地澄清这个问题,我只对从对象内部而不是从外部访问变量感兴趣.

javascript variables

14
推荐指数
2
解决办法
1万
查看次数

JavaScript中的原型

在JavaScript中你可以用许多不同的方式做同样的事情.

考虑一下例子:

1:

function Circle(radius) {
 return {
  "r" : radius,
  "area" : function(){
   return Circle.pi * this.r * this.r; 
  }
 }
}
Circle.pi = 3.14159;

var a = Circle(10);
alert(a.area());
Run Code Online (Sandbox Code Playgroud)

2:

function Circle(radius) {
    this.r = radius;
}

Circle.pi = 3.14159;
Circle.prototype.area = function(){
 return Circle.pi * this.r * this.r; 
}

var a = new Circle(10);
alert(a.area());
Run Code Online (Sandbox Code Playgroud)

第二个比第一个好,因为我们没有为Circle的任何实例定义相同的功能区域.

但让我们考虑3:

function Circle(radius) {
 return {
  "r" : radius,
  "area" : Circle.area
 }
}
Circle.pi = 3.14159; …
Run Code Online (Sandbox Code Playgroud)

javascript oop

5
推荐指数
1
解决办法
1417
查看次数

标签 统计

javascript ×2

oop ×1

variables ×1