下面的示例将变量传递给javascript中的对象的技术名称是什么?而且,为什么它不起作用(“大”未按预期输出到控制台日志)?

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


function ThumbnailBlock() {

    this.thumbnailSize;

    console.log("DEBUG");
    console.log(this.thumbnailSize);
}

最佳答案

解释Willem Mulder's answer中的代码出了什么问题:


  没有具体名称。您只需设置一个对象属性。
  
  因为首先使用ThumbnailBlock构造函数创建一个对象(它将记录this.thumbnailSize),然后才将.thumbnailSize设置为“ large”,所以不会输出“ large”。


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

function ThumbnailBlock(size) {
    this.thumbnailSize = size;
}

var thumbnailBlock = new ThumbnailBlock("large");

console.log(thumbnailBlock.thumbnailSize);


另外,请查看该页面上的The Constructor Pattern和其他漂亮的模式。我还建议the chapter on OOP in the free book Eloquent JavaScript

10-08 18:06