可通过多种方法在 JavaScript 中创建你自己的对象。可以直接实例化Object 对象 (JavaScript),然后添加你自己的属性和方法。或者可以使用对象文本表示法来定义你的对象。还可使用构造函数来定义对象。

示例

下面的代码演示如何实例化对象和添加一些属性。在此情况下,只有 pasta 对象具有 grain、width 和 shape 属性。

var pasta = new Object();
pasta.grain = "wheat";
pasta.width = 0.5;
pasta.shape = "round";
pasta.getShape = function() {
return this.shape;
};
document.write(pasta.grain);
document.write("<br/>");
document.write(pasta.getShape()); // Output:
// wheat
// round
对象文本

只想创建一个对象实例时,还可以使用对象文本表示法。下面的代码演示如何通过使用对象文本表示法来实例化对象。

var pasta = {
grain: "wheat",
width: 0.5,
shape: "round"
};

下面描述的功能仅在 Microsoft Edge 中受支持。

在 Microsoft Edge 中,可以使用速记语法来创建对象文本。

var key = 'a';
var value = ; // Older version
var obj1 = {
key: key,
value: value
}; // Edge mode
var obj2 = {key, value}; console.log(obj2); // Output:
// [object Object] {key: "a", value: 5}

以下示例演示如何使用速记语法来定义对象文本中的方法。

// Older versions
var obj = {
method1: function() {},
method2: function() {}
}; // Edge mode
var obj = {
method1() {},
method2() {}
};

还可以在 Microsoft Edge 的对象文本中动态设置属性名称。下面的代码示例使用 set 语法以动态方式创建对象的属性名称。

var propName = "prop_42";

var obj = {
value: ,
set [propName](v) {
this.value = v;
}
} console.log(obj.value);
// Runs the setter property.
obj.prop_42 = ;
console.log(obj.value); // Output:
// 0
//

下面的代码示例使用 get 语法以动态方式创建对象的属性名称。

var propName = "prop_42";

var obj = {
get [propName]() {
return ;
}
} console.log(obj.prop_42); // Output:
//

下面的代码示例通过使用箭头函数语法将 42 追加到属性名称来创建计算属性。

var obj = {
[ 'prop_' + (() => )() ]:
};

最新文章

  1. C#开发微信门户及应用(38)--微信摇一摇红包功能
  2. .net之美学习-前奏
  3. 使用idea15搭建基于maven的springmvc-mybatis框架
  4. Android高工必备技能
  5. 给IOS系统的微信页面赋Title
  6. Android学习系列(37)--App调试内存泄露之Context篇(下)
  7. startActivityForResult的用法和demo
  8. python知识点(07-08)
  9. 汇编语言-打印部分ASCII表
  10. MyBatis的CRUD操作
  11. DevExpress ASP.NET 使用经验谈(4)-CriteriaOperator的使用
  12. Spring中Quartz动态设置cronExpression
  13. CLR的组成和运转
  14. tornado 增加日志模块
  15. 一个2D平面游戏,的碰撞引擎实现
  16. ipv4转化为ipv6
  17. redis5.0.4 集群搭建
  18. Python 判断文件/目录是否存在
  19. M2postmortem
  20. jlink的SWD与JTAG下载模式的对应接线方法

热门文章

  1. 微信小程序开发教程(一)准备
  2. POJ 3532 Resistance(高斯消元+基尔霍夫定理)
  3. 【计算几何】 Codeforces Beta Round #67 (Div. 2) E. Ship&#39;s Shortest Path
  4. 【动态规划】【记忆化搜索】【搜索】CODEVS 1262 不要把球传我 2012年CCC加拿大高中生信息学奥赛
  5. Problem D: 零起点学算法24——判断奇偶数
  6. Linux下使用xargs将多行文本转换成一行并用tr实现逗号隔开
  7. TOleDBMSSQLConnectionProperties驱动MSSQL数据库
  8. IP windows相关
  9. javascriptMVC框架面向对象编程
  10. 在Centos 7中使用 Docker搭建MySQL异地双向复制环境