gpt4 book ai didi

javascript - JavaScript 中的闭包和原型(prototype)设计有什么区别?

转载 作者:行者123 更新时间:2023-12-01 01:16:01 25 4
gpt4 key购买 nike

我正在检查 JavaScript 中的闭包和原型(prototype)。我编写了两个基本 HTML 返回函数,基本上它们都返回相同的输出。这两者之间有什么区别/关系吗?为什么我们应该使用闭包?

//Closure
function createLI(tags) {
return function(...args) {
if (args.length > 1) {
return args.map((iteam) => {
return "<" + tags + ">" + iteam + "</" + tags + ">"
})
} else {
return "<" + tags + ">" + args + "</" + tags + ">"
}
}
}

var tag = createLI('li');
console.log(tag('test'));



//prototype function

let Newfunction = function(x) {
this.content = x;
}

Newfunction.prototype.aswrapper = function(...args) {
if (args.length > 1) {
return args.map((iteam) => {
return "<" + this.content + ">" + iteam + "</" + this.content + ">"
})
} else {
return "<" + this.content + ">" + args + "</" + this.content + ">"
}
}

let heading = new Newfunction('h1');
heading.aswrapper('sometextprint');
console.log(heading.aswrapper('sometextprint'));

最佳答案

每次使用闭包创建对象时,都会有其方法的副本(它们在内存中作为 Function 类型的独立对象,即使它们执行相同的操作)。如果使用原型(prototype)方法,无论创建多少个对象,其每个方法都只会有一个副本(原型(prototype)方法)。

关于javascript - JavaScript 中的闭包和原型(prototype)设计有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54766159/

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