js给对象添加属性的方法 js中动态添加用哪一个

js给对象添加属性的方法 js中动态添加用哪一个在 JavaScript 中,几乎“所有事物”都是对象。布尔是对象(如果用new关键词定义)数字是对象(如果用new关键词定义)字符串是对象(如果用new关键词定义)日期永远都是对象算术永远都

js给对象添加属性的方法 js中动态添加用哪一个

在 JavaScript 中,几乎“所有事物”都是对象。

布尔是对象(如果用new关键词定义)数字是对象(如果用new关键词定义)字符串是对象(如果用new关键词定义)日期永远都是对象算术永远都是对象正则表达式永远都是对象数组永远都是对象函数永远都是对象对象永远都是对象

所有 JavaScript 值,除了原始值,都是对象。原始值指的是没有属性或方法的值。原始数据类型指的是拥有原始值的数据。

JavaScript 定义了 5 种原始数据类型:

stringnumberbooleannullundefined

原始值是一成不变的(它们是硬编码的,因此不能改变)。

假设 x = 3.14,您能够改变 x 的值。但是您无法改变 3.14 的值。

1 内置对象

var x1 = new Object(); // 一个新的 Object 对象var str = new String("你好!迈克!"); // 一个新的 String 对象var x3 = new Number(456); // 一个新的 Number 对象var x4 = new Boolean(true); // 一个新的 Boolean 对象var arr = new Array(3); // 一个新的 Array 对象var reg = new RegExp("javascript","i"); // 一个新的 RegExp 对象var x7 = new Function(); // 一个新的 Function 对象var rightnow = new Date(); // 一个新的 Date 对象

JavaScript 提供原始数据类型字符串、数字和布尔的对象版本,所以并无理由创建复杂的对象,原始值快得多!

请使用对象字面量{}代替new Object()。请使用字符串字面量""代替new String()。请使用数值字面量代替Number()。请使用布尔字面量代替new Boolean()。请使用数组字面量[]代替new Array()。请使用模式字面量代替new RexExp()。请使用函数表达式() {}代替new Function()。

实例:

var x1 = {}; // 新对象var x2 = ""; // 新的原始字符串var x3 = 0; // 新的原始数值var x4 = false; // 新的原始逻辑值var x5 = []; // 新的数组对象var x6 = /()/ // 新的正则表达式对象var x7 = function(){}; // 新的函数对象2 自定义对象

2.1 直接以“名称:值”的对象字面量来创建单一对象

对象是包含变量的变量。值按照名称 : 值对的形式编写(名称和值以冒号分隔)。

var person = { firstName: "Bill", lastName : "Gates", id: 678, fullName : function() { return this.firstName + " " + this.lastName; }};

2.2 使用new object关键字构造单一对象,并可动态地给对象添加属性和方法

var car = new Object();car.name = "Benz 600";car.color = "black";car.capacity = 2.0;car.run = canRun;function canRun(){ document.write("<br>The most speed 250 km");}// car.run = function {……}document.write( car.name);car.run();

以上创建单一对象的方法可以动态新增、更新、delete属性。

2.3 使用function关键字构造对象类型或“蓝图”(构造函数或对象构造器)

function Car(name,color,capacity){ this.name = name; this.color = color; this.capacity = capacity; this.run = function(){……}}var car = new Car("Benz 600","color",2.0);car.run();

无法为已有的对象构造器添加新属性。如需向构造器添加一个新属性,则必须把它添加到构造器函数。但所有 JavaScript 对象都从原型继承属性和方法。

日期对象继承自 Date.prototype。数组对象继承自 Array.prototype。Car 对象继承自 Car.prototype。

Object.prototype 位于原型继承链的顶端:

日期对象、数组对象和 Car 对象都继承自 Object.prototype。

Car.prototype.price = 4500003 通过函数 Object.create() 来创建对象

另外,在 ECMAScript 5 中,也可以通过函数 Object.create() 来创建对象。

Object.create(prototype, descriptors)

实例:

//【示例1】下面示例使用Object.create定义一个对象,继承null,// 包含两个可枚举的属性size和shape,属性值分别为"large"和"round"。var newObj = Object.create(null, { size: {//属性名value: "large",//属性值enumerable: true//可以枚举 }, shape: {//属性名value: "round",//属性值enumerable: true//可以枚举 }});console.log(newObj.size );//largeconsole.log(newObj.shape );//roundconsole.log(Object.getPrototypeOf(newObj));//null//【示例2】下面示例使用Object.create定义一个与对象直接量具有相同原型的对象。var obj = Object.create(Object.prototype, {//继承Object.prototype原型对象 x: {value: undefined, //属性值writable: true, //可写configurable: true, //可以配置enumerable: true//可以枚举 }});console.log("obj.prototype = " + Object.getPrototypeOf(obj));// Obj prototype = [object Object]//【示例3】下面示例定义一个对象,使用访问器属性b来读写数据属性a。var obj = Object.create(Object.prototype, { a: {// 数据属性awritable:true,value: "a" }, b: {//访问器属性bget: function() { return this.a;},set: function(value) { this.a = value;} }});console.log(obj.a);//"a"console.log(obj.b);//"a"obj.b = 20;console.log(obj.b);//204 函数也是一个对象

4.1 函数声明

function myFunction(a, b) { return a * b;}

4.2 通过名为 Function() 的内建 JavaScript 函数构造器来定义

var myFunction = new Function("a", "b", "return a * b");var x = myFunction(4, 3);

您实际上无需使用函数构造器。可以将一个函数表达式(匿名函数)赋值给一个变量(函数名用变量名来表示)。在变量中保存函数表达式之后,此变量可用作函数。

var myFunction = function (a, b) {return a * b};var x = myFunction(4, 3);

上面的函数使用分号结尾,因为它是可执行语句的一部分。

JavaScript 函数能够在声明之前被调用,称为函数提升:

myFunction(5); function myFunction(y) { return y * y;}

使用表达式定义的函数不会被提升。

JavaScript 函数因为是对象,都有属性方法

arguments.length 会返回函数被调用时收到的参数数目:

function myFunction(a, b) { return arguments.length;}

-End-

【版权声明】零度号提醒您:请在浏览本网站关于《js给对象添加属性的方法 js中动态添加用哪一个》信息时,请您务必阅读并理解本声明。本站部分内容以及图片来源于商家投稿和网络转载,如网站发布的有关的信息侵犯到您的权益,请及时与我们取得联系,邮箱:31055 30035@qq.com,我们会尊重您的决定并当天作出删除处理。

(0)
上一篇 2022年 9月 10日 10:31:02
下一篇 2022年 9月 10日 10:32:11

相关推荐

  • 高兴的英语怎么说 表示开心的英文句子

    高兴的英语怎么说 表示开心的英文句子点击上方“首都之窗” 可以订阅哦!春天到了,心情也会随着万物的复苏而明亮起来——正所谓“充满了春天般的喜悦之情”(be full of the joys of spring)。更多关于“开心快乐”的英文表

    2023年 1月 23日
    9
  • 元气骑士工程师哪个技能好 元气骑士工程师怎么样

    元气骑士工程师哪个技能好 元气骑士工程师怎么样“碧海潮生龙影现,石岸萧落一曲长”大家好!我是爱游戏爱《元气骑士》的老宅。随着《元气骑士》“暑假版本”预告pv的悄然而至,让沉浸许久的元气圈内,再次焕发出些许人气。可正当大家普遍都将点放在那位神

    2023年 1月 1日
    16
  • 日常生活用品 常见的商品有哪些

    日常生活用品 常见的商品有哪些时间如流水,匆匆流逝,还记得儿时的供销社么?经历过八十年代的人都知道供销社,我们生活中常用的生活用品都是在供销社买的。八十年代是一个货真价实的年代。父母那辈人用的生活用品基本都是从供销社买的。这些供销社卖的商品

    2023年 1月 18日
    13
  • 婴儿辅食机十大排行榜 宝宝辅食锅什么牌子好

    婴儿辅食机十大排行榜 宝宝辅食锅什么牌子好日常的工作、生活,我们或都可以计划安排得井井有序,但新手宝妈,总是避免不了手忙脚乱。尤其是宝宝六个月开始添加辅食的时候,在既不伤害宝宝娇嫩脾胃,又能促进健康发育的情况下,给宝宝做什么成了每个妈妈的必

    2022年 10月 16日
    7
  • 赤道是什么 赤道是什么样子

    赤道是什么 赤道是什么样子众所周知,赤道是温暖的甚至是炎热的,因为它接受更多的阳光直射,也就是离太阳更近。那么问题来了,如果赤道是炎热的,因为它离太阳更近,那么为什么山顶不是?从技术上讲,它们也离太阳更近,但现实中它们很冷,而且被雪覆盖着。

    2023年 3月 24日
    2
  • 乒乓球鞋什么牌子最舒服 乒乓球鞋哪个牌子穿着舒服点

    乒乓球鞋什么牌子最舒服 乒乓球鞋哪个牌子穿着舒服点ASICS始于1949年的ASICS(亚瑟士),是世界五大运动品牌之一,60多年来,以其对高科技、高品质的极致追求著称于世。ASICS 在运动鞋研发上的卓越能力,更是无可匹敌,被全世界跑者誉

    2022年 10月 14日
    7
  • labview编程实例详解 labview简单程序设计

    labview编程实例详解 labview简单程序设计在上篇文章:LabVIEW编程实例:计算阶乘,学习for循环+移位寄存器+递归调用,通过一个求阶乘的例子已经演示了LabVIEW中基本递归VI程序的实现方法,但有很多小伙伴还是不太明白,

    2022年 10月 10日
    7
  • 为什么优酷视频打不开怎么回事 优酷视频打不开怎么办

    为什么优酷视频打不开怎么回事 优酷视频打不开怎么办8月19日13:42消息,优酷土豆疑似服务器故障,相关视频打不开了,如图:客户端也是同样的问题,搜索相关视频显示如图:这对影视迷和综艺迷无疑是晴天霹雳,现在只是猜测,官方还没有发表声明。全国

    2022年 10月 6日
    6
  • 请对我好一点:促进幸福与和谐的关爱之道

    请对我好一点:促进幸福与和谐的关爱之道请对我好一点在当今社会,人际关系复杂多变,人与人之间的互动也越来越多样化。然而,我们常常在生活中遇到一些对我们不太好的人或事,这让我们感到不愉快和困惑。因此,我认为,每个人都应该学会对他人好一点,从而建

    2023年 5月 20日
    2
  • 冬至是什么节日 冬至属于中国传统节日吗

    冬至是什么节日 冬至属于中国传统节日吗冬至,是我国民间的传统节日,也是二十四节气中的第22个节气。冬至被视为冬季的大节日,有“冬至大如年”的说法。根据区域不同,南北方地区存在着很多冬至的习俗。同时,由于冬至到来以后,“数九”也就正式开始,天

    2023年 2月 7日
    16
分享本页
返回顶部