JavaScript Creating 对象
2024-10-10 00:44:02
可通过多种方法在 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_' + (() => )() ]:
};
最新文章
- C#开发微信门户及应用(38)--微信摇一摇红包功能
- .net之美学习-前奏
- 使用idea15搭建基于maven的springmvc-mybatis框架
- Android高工必备技能
- 给IOS系统的微信页面赋Title
- Android学习系列(37)--App调试内存泄露之Context篇(下)
- startActivityForResult的用法和demo
- python知识点(07-08)
- 汇编语言-打印部分ASCII表
- MyBatis的CRUD操作
- DevExpress ASP.NET 使用经验谈(4)-CriteriaOperator的使用
- Spring中Quartz动态设置cronExpression
- CLR的组成和运转
- tornado 增加日志模块
- 一个2D平面游戏,的碰撞引擎实现
- ipv4转化为ipv6
- redis5.0.4 集群搭建
- Python 判断文件/目录是否存在
- M2postmortem
- jlink的SWD与JTAG下载模式的对应接线方法
热门文章
- 微信小程序开发教程(一)准备
- POJ 3532 Resistance(高斯消元+基尔霍夫定理)
- 【计算几何】 Codeforces Beta Round #67 (Div. 2) E. Ship&#39;s Shortest Path
- 【动态规划】【记忆化搜索】【搜索】CODEVS 1262 不要把球传我 2012年CCC加拿大高中生信息学奥赛
- Problem D: 零起点学算法24——判断奇偶数
- Linux下使用xargs将多行文本转换成一行并用tr实现逗号隔开
- TOleDBMSSQLConnectionProperties驱动MSSQL数据库
- IP windows相关
- javascriptMVC框架面向对象编程
- 在Centos 7中使用 Docker搭建MySQL异地双向复制环境