Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript类与函数何时使用?_Javascript - Fatal编程技术网

Javascript类与函数何时使用?

Javascript类与函数何时使用?,javascript,Javascript,我有点困惑,在什么时候和什么情况下我们会选择类,而不是函数 分类{ 构造函数(文本){ this.text=文本; } 多索姆辛{ 设checkBoolen=false; document.querySelector(`.ss${this.text}`).addEventListener('mousedown',e=>{ checkBoolen=true console.log(this.text) }) document.querySelector(`.ss${this.text}`).ad

我有点困惑,在什么时候和什么情况下我们会选择
,而不是
函数

分类{
构造函数(文本){
this.text=文本;
}
多索姆辛{
设checkBoolen=false;
document.querySelector(`.ss${this.text}`).addEventListener('mousedown',e=>{
checkBoolen=true
console.log(this.text)
})
document.querySelector(`.ss${this.text}`).addEventListener('mouseup',e=>{
if(checkBoolen==true){
log('do something')
checkBoolen=false
setTimeout(函数(){console.log(checkBoolen)},1000)
}
})
}
newDIV(){
var btn=document.createElement(“按钮”);
添加(`ss${this.text}`)
btn.innerHTML=`单击${this.text}`;
文件.正文.附件(btn);
这个doSomthing()
}
}
设newdiv1=newsomething('1');
设newdiv2=新事物('2');
newdiv1.newDIV();
newdiv2.newDIV()

您的问题是关于函数式编程和面向对象编程,因为javascript允许两者,所以如何处理取决于您自己

您可以将类用于应用程序中的状态完整对象,否则可能会使用函数,只要它是一致的

更多信息请点击此处:

与任何其他语言一样,a是打包一些代码以便重用的方法,而a是包含相关代码和数据(方法和状态)的实体的“蓝图”


JavaScript中更为特殊的是构造函数——这些函数的行为有点像类,因为它们可以用来创建具有特定类型的新对象(即,您可以稍后检查特定构造函数是否创建了对象)。它们与类的不同之处在于它们更灵活,但有时可能需要更多的代码(特别是继承有点难看)。

如果使用类,如果希望支持过时的浏览器,请确保Transbile。一开始,JS中没有类。它只是语法上的糖。我认为当你尝试做继承之类的事情时,对新手来说,获得一些东西要比学习JS中原型的工作方式容易得多。简单一点:当你需要同一个对象(实例)的多个副本,并且要向其中添加函数(方法)或值(属性)时,使用一个类。优点是所有这些对象可以共享相同的函数,但仍然具有不同的值。其他一切可能都是一个函数。事实远比这复杂得多,但这是最基本的。检查这个答案将帮助您记录:您的示例基本上是在重新创建一个
。所以在这个特定的例子中,我不会使用这两个选项,而是更喜欢使用真正的复选框。