私有和特权方法之间的区别

时间:2012-12-31 00:10:09

标签: javascript

我们假设我有一个这样的课程。

function kevin(name){
   this.name = name;
   this.methodKevin = function(){
        console.log(this.name);
   };
   var kevin = function(){
        console.log(this.name); 
   }
   function newKevin(){
        console.log(this.name);
   }
}
  1. 他们在javascript中有什么区别?。
  2. 我的班级是否完美,我可以在我的内部使用函数表达式 构造

1 个答案:

答案 0 :(得分:2)

这取决于它们的调用方式,可能会引起混淆,因为有两个名为kevin的函数。

    除非methodKevin调用,否则
  1. new kevin将绑定到window对象,在这种情况下,它将绑定到顶级kevin函数对象。 this.name只有在new实例化的函数调用时才能正常工作。
  2. var kevin的功能范围是父kevin函数,因此永远不会在该函数之外调用它。在这个意义上它是私人的。 this.name可以使用,但仅name就足够了。
  3. 与2
  4. 相同