Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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_Object Literal - Fatal编程技术网

Javascript对象文字,无法设置属性

Javascript对象文字,无法设置属性,javascript,object-literal,Javascript,Object Literal,我试图将元素添加到我的对象文本中,我在控制台中收到的都是未定义的输出 为什么itemSize被打印为未定义的,以及为什么我试图设置的所有属性也未定义。我一定是错过了什么大事 我也不理解get testFunction的用途,甚至不理解它是如何被访问的,因为它似乎不在其他函数的签名后面,而这些函数的函数名后面有一个冒号 我现在很困惑 index.html var square = new GULE.Scene(); square.hey( 5 ); gule.js var GULE = GUL

我试图将元素添加到我的对象文本中,我在控制台中收到的都是
未定义的输出

为什么itemSize被打印为未定义的
,以及为什么我试图设置的所有属性也未定义。我一定是错过了什么大事

我也不理解
get testFunction
的用途,甚至不理解它是如何被访问的,因为它似乎不在其他函数的签名后面,而这些函数的函数名后面有一个冒号

我现在很困惑

index.html

var square = new GULE.Scene();
square.hey( 5 );
gule.js

 var GULE = GULE || {};

 GULE.Scene = function ( itemSize ) {

  this.itemSize = itemSize;
  console.log( "Trying in constructor: " + this.itemSize );
  console.log( "Passed variable: " + itemSize );

 };

 GULE.Scene.prototype = {

      constructor: GULE.Scene,
      stuff: 1,
      get testFunction () {
            console.log( "testFunction!" );
          },
      add: function () {
              this.stuff += 1;
            },
      hey: function () {
              console.log( this.stuff );
              console.log( "Trying in function: " + this.itemSize );
           }
 };
正确的代码应该是-
var square=new GULE.Scene(5);
嘿()

正确的代码应该是-
var square=new GULE.Scene(5);
嘿()

正确的代码应该是-
var square=new GULE.Scene(5);
嘿()

正确的代码应该是-
var square=new GULE.Scene(5);
嘿()

为什么itemSize打印为未定义

因为您没有将任何内容传递到
场景
构造函数中,所以参数为
未定义
,这就是您要分配给
itemSize

“获取测试”功能的目的是什么

它创建一个名为
testFunction
的属性,当被访问时,该属性调用函数;请参阅规范的一部分。这是ES5功能。如果打开web控制台,然后在创建
方块后执行此操作:

var x = square.testFunction;
…您将在控制台中看到“testFunction!”,因为您访问了该属性

当您阅读
testFunction
时看到
undefined
的原因是getter定义的函数不返回任何内容

这里有一个更清楚的例子:

(函数(){
“严格使用”;
var obj=(函数(){
var propValue=“初始值”;
返回{
正常比例:42,
获取accessorProp(){
显示(“读取存取器PROP”);
返回值;
},
设置accessorProp(值){
显示(“写入accessorProp,新值:“+值”);
价值=价值;
}
};
})();
显示(“normalProp为”+obj.normalProp);
显示(“accessorProp为”+对象accessorProp);
obj.accessorProp=“测试”;
显示(“accessorProp现在是”+对象accessorProp);
功能显示(msg){
var p=document.createElement(“p”);
p、 innerHTML=字符串(msg);
文件.正文.附件(p);
}
})();
为什么itemSize打印为未定义

因为您没有将任何内容传递到
场景
构造函数中,所以参数为
未定义
,这就是您要分配给
itemSize

“获取测试”功能的目的是什么

它创建一个名为
testFunction
的属性,当被访问时,该属性调用函数;请参阅规范的一部分。这是ES5功能。如果打开web控制台,然后在创建
方块后执行此操作:

var x = square.testFunction;
…您将在控制台中看到“testFunction!”,因为您访问了该属性

当您阅读
testFunction
时看到
undefined
的原因是getter定义的函数不返回任何内容

这里有一个更清楚的例子:

(函数(){
“严格使用”;
var obj=(函数(){
var propValue=“初始值”;
返回{
正常比例:42,
获取accessorProp(){
显示(“读取存取器PROP”);
返回值;
},
设置accessorProp(值){
显示(“写入accessorProp,新值:“+值”);
价值=价值;
}
};
})();
显示(“normalProp为”+obj.normalProp);
显示(“accessorProp为”+对象accessorProp);
obj.accessorProp=“测试”;
显示(“accessorProp现在是”+对象accessorProp);
功能显示(msg){
var p=document.createElement(“p”);
p、 innerHTML=字符串(msg);
文件.正文.附件(p);
}
})();
为什么itemSize打印为未定义

因为您没有将任何内容传递到
场景
构造函数中,所以参数为
未定义
,这就是您要分配给
itemSize

“获取测试”功能的目的是什么

它创建一个名为
testFunction
的属性,当被访问时,该属性调用函数;请参阅规范的一部分。这是ES5功能。如果打开web控制台,然后在创建
方块后执行此操作:

var x = square.testFunction;
…您将在控制台中看到“testFunction!”,因为您访问了该属性

当您阅读
testFunction
时看到
undefined
的原因是getter定义的函数不返回任何内容

这里有一个更清楚的例子:

(函数(){
“严格使用”;
var obj=(函数(){
var propValue=“初始值”;
返回{
正常比例:42,
获取accessorProp(){
显示(“读取存取器PROP”);
返回值;
},
设置accessorProp(值){
显示(“写入accessorProp,新值:“+值”);
价值=价值;
}
};
})();
显示(“normalProp为”+obj.normalProp);
显示(“accessorProp为”+对象accessorProp);
obj.accessorProp=“测试”;
显示(“accessorProp现在是”+对象accessorProp);
功能显示(msg){
var p=document.createElement(“p”);
p、 innerHTML=字符串(msg);
文件.正文.附件(p);
}
})();
为什么itemSize打印为未定义

因为您没有将任何内容传递到
场景
构造函数中,所以参数为
未定义
,这就是您要分配给
itemSize

“获取测试”功能的目的是什么

它创造了一个