gpt4 book ai didi

javascript - 私有(private)方法和特权方法的区别

转载 作者:行者123 更新时间:2023-11-30 18:13:05 25 4
gpt4 key购买 nike

假设我有这样一个类。

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. 我的类(class)完美吗,我可以在我的类(class)里有一个函数表达式吗?构造函数?

最佳答案

这取决于它们是如何被调用的,并且可能会让人困惑,因为有两个函数被命名为:kevin

  1. methodKevin 将绑定(bind)到 window 对象,除非被 new kevin 调用,在这种情况下,它将绑定(bind)到顶级 kevin 函数对象. this.name 只有在被使用 new 实例化的函数调用时才能正常工作。
  2. var kevin 是父 kevin 函数的函数作用域,因此永远不会在该函数之外调用它。从这个意义上说,它是私有(private)的。 this.name 可以工作,但是单独使用 name 就足够了。
  3. 和2一样

关于javascript - 私有(private)方法和特权方法的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14096054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com