该示例用于将变量传递给javascript中的对象的技术的名称是什么

What is the name of the technique the example uses to pass a variable to an object in javascript?

本文关键字:对象 技术 是什么 javascript 用于 变量      更新时间:2023-09-26

下面的示例使用什么技术将变量传递给javascript中的对象?此外,为什么它不工作("大型"没有按预期输出到控制台日志)?

var thumbnailBlock = new ThumbnailBlock();
thumbnailBlock.thumbnailSize = "large";

function ThumbnailBlock() {
    this.thumbnailSize;
    console.log("DEBUG");
    console.log(this.thumbnailSize);
}

Willem Mulder的回答解释了代码中出现的问题:

没有具体的名称。您只需设置一个对象属性。

"large"不会输出,因为您首先使用ThumbnailBlock构造函数创建对象(该函数记录this.thumbnailSize),然后才将.tumbnailsize设置为";"大";。

您可以将大小作为函数参数传递。

function ThumbnailBlock(size) {
    this.thumbnailSize = size;
}
var thumbnailBlock = new ThumbnailBlock("large");
console.log(thumbnailBlock.thumbnailSize);

此外,请查看该页面上的构造函数模式和其他不错的模式。我还推荐免费书籍《EloquentJavaScript》中关于OOP的章节。

没有特定的名称。您只需设置一个对象属性。

"large"不会输出,因为首先使用ThumbnailBlock构造函数创建对象(该函数记录this.thumbnailSize),然后仅将.tumbnailsize设置为"larg"。

已经给出了正确的答案,我只想指出,如果您的对象被密封或冻结,添加动态属性将不起作用。

function ThumbnailBlock(size) {
    Object.seal(this);
}
var thumbnailBlock = new ThumbnailBlock("large");
thumbnailBlock.thumbnailSize = 10;
console.log(thumbnailBlock.thumbnailSize); // undefined

在严格模式下,您将引发一个异常。