Javascript 私有方法和特权方法的区别

Javascript 私有方法和特权方法的区别,javascript,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);

让我们假设我有一节这样的课

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);
   }
}
  • 它们在javascript中的区别是什么
  • 如果我的类是完美的,我可以在我的类中有一个函数表达式吗 建造师

  • 这取决于它们的调用方式,而且可能会让人感到困惑,因为有两个函数名为:
    kevin

  • methodKevin
    将绑定到窗口对象,除非由
    new kevin
    调用,在这种情况下,它将绑定到顶级
    kevin
    函数对象
    this.name
    只有在被用
    new
    实例化的函数调用时才能正常工作
  • var kevin
    函数的作用域是父函数
    kevin
    function,因此它可能永远不会在该函数之外被调用。从这个意义上讲,它是私人的
    this.name
    将起作用,但仅
    name
    就足够了
  • 与2相同

  • 你想出“特权法”这个名字了吗?“我认为这很精彩。”马特维克库宁:打字错误。。。无论如何它的特权方法。我以前也从未听说过这种方法。@MattiVirkkunen JavaScript中的
    特权方法
    的想法是由Douglas Crockford推广的: