JavaScript如何自定义对象

发布时间:2024-05-16
自定义方法:1、直接通过“属性名/值”来创建,语法“var 对象名={属性名:属性值};”;2、使用“var 对象名=new 构造函数名(args);”语句;3、使用“object.create(原型对象,descriptors)”语句。
本教程操作环境:windows7系统、javascript1.8.5版、dell g3电脑。
在js中,除了array、date、number等内置对象外,开发者可以通过js代码创建自己的对象。
对象特性
① 结构类似\’字典\’ :对象的属性类似键/值对;属性的名称为字符串,属性的值为任意类型。
② 原型继承:js的对象可继承原型的属性。
③ 动态结构:可动态新增、删除对象的属性。
④ 引用类型:js中的对象为引用类型。a为一个对象,b=a,修改b也会造成a的修改。
创建对象方式
js中创建自定义对象,主要通过三种方式:对象直接量、new 构造函数以及object.create()方法。每一种创建方式继承的原型对象都不同:
① 对象直接量:原型为object.prototype。
② new 构造函数:原型为构造函数的prototype属性。
③ object.create():原型为传入的第一个参数,若第一个参数为null,以object.prototype为原型。
1、对象直接量
说明:直接通过 属性名/值来创建。
语法:var o = { name:\’tom\’, age:22 };
原型:object.prototype
适用场景:应用在某一特定的作用域里。
示例:
var o = { name: \’tom\’}console.log(o.constructor.prototype); // => object() :对象直接量的原型为objectconsole.log(o.constructor.prototype === object.prototype); // true
2、new 构造函数
说明:构造函数也是种函数,但为了区分平常所用的函数,构造函数的函数名采用大骆驼峰写法(首字母大写)。
语法:var o = new classname();
原型:构造函数的prototype属性。
示例:
// 1.创建构造函数function people(name) { this.name;}var p = new people(\’tom\’);console.log(p.constructor.prototype); // => people{} :原型为构造函数的prototypeconsole.log(p.constructor.prototype === people.prototype); // => true// 2.自定义对象的多层继承 :constructor返回最先调用的构造函数 function student(age) { this.age = age;}student.prototype = new people(); // 设置student的原型为people对象var s = new student(22); // 对象初始化时,先调用people(),再调用student()console.log(s.constructor); // => function people :对象s返回的构造函数为peopleconsole.log(s.constructor.prototype); // => people{} :原型对象为peopleconsole.log(s.constructor.prototype === people.prototype); // => true
3、object.create(prototype, propertydescriptor) :ecmascript 5规范
说明:创建并返回一个指定原型和指定属性的对象。
语法:object.create(prototype, propertydescriptor)
参数:
①prototype {prototype} :创建对象的原型,可以为null。若为null,对象的原型为undefined。
②propertydescriptor {propertydescriptor} 可选:属性描述符。
原型:默然原型型为①参;若①参为null,对象的原型为undefined。
示例:
// 1.建立一个原型为null的对象var o = object.create(null, { name: { value: \’tom\’ }});console.log(o.constructor); // => undefined // 2.创建一个原型为array的对象var array = object.create(array.prototype, {});console.log(array.constructor); // => function array 构造函数 console.log(array.constructor.prototype); // => [] :原型对象为数组// 3.创建一个原型为自定义类的对象function people() { }var p = object.create(people.prototype, {});console.log(p.constructor); // => function people 构造函数 console.log(p.constructor.prototype); // => people{} :原型对象people
【相关推荐:javascript学习教程】
上一个:磨床厂家诠释手动磨床如何保养?
下一个:RTT0229R4DTH现货库存,最新价格

macmini能干啥(macmini主要用来干嘛)
GEFRAN杰弗伦熔体压力传感器Z高温度可达530度
腾讯云服务器镜像是什么
唯品会买东西后订单不见了扣款记录也不见了(唯品会买东西后订单不见了怎么办)
硬盘分区好不好,硬盘经常分区好不好呀
手持式烟道废气阻容法烟气湿度仪水分测量装置
老光驱怎么接,老式光驱线怎么接图解
土壤肥力检测仪
平乡电子防爆台秤(威县电子防爆桌称)清河电子防爆叉车秤维修
矿用风门气动闭锁装置锁门性能如何