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);
}
}
这取决于它们的调用方式,而且可能会让人感到困惑,因为有两个函数名为:
kevin
methodKevin
将绑定到窗口对象,除非由new kevin
调用,在这种情况下,它将绑定到顶级kevin
函数对象this.name
只有在被用new
实例化的函数调用时才能正常工作var kevin
函数的作用域是父函数kevin
function,因此它可能永远不会在该函数之外被调用。从这个意义上讲,它是私人的this.name
将起作用,但仅name
就足够了你想出“特权法”这个名字了吗?“我认为这很精彩。”马特维克库宁:打字错误。。。无论如何它的特权方法。我以前也从未听说过这种方法。@MattiVirkkunen JavaScript中的
特权方法的想法是由Douglas Crockford推广的: