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

相关推荐

  • 阴阳师曜之阁有什么东西 惠比寿曜之阁氪金

    阴阳师曜之阁有什么东西 惠比寿曜之阁氪金一般的手游都会对氪金的玩家进行VIP系列的等级划分,根据VIP的级别玩家会直观的看到其他玩家的氪金度,阴阳师虽然没有很明显的这个特征,不过近期开放的曜之阁活动加上之前的部分活动已经很明显的变相的划分了

    2022年 9月 17日
    14
  • 魔兽世界采矿攻略 魔兽世界采矿290—300太难了

    魔兽世界采矿攻略 魔兽世界采矿290—300太难了前面介绍了双采技能之一的“草药学”,今天我们就来聊一聊另一个常规意义上的双采技能“采矿”。为什么说是常规意义呢?因为“剥皮”也是采集技能之一,有的玩家喜欢使用“剥皮+采药”,有的喜欢使用“剥

    2022年 9月 29日
    59
  • 行冠礼是几岁 古代男子什么时候举行冠礼

    行冠礼是几岁 古代男子什么时候举行冠礼古代冠礼是古代汉族男性的一种成年礼仪,一般在男子年满二十岁的那年举办,由父母长辈作为举办方,并宴请亲朋好友到场观礼,而且发冠一般会由氏族中德高望重的长辈为男子带上,表示对他的祝愿。古代冠礼是什么意思古代

    2022年 12月 10日
    6
  • excel柏拉图制作方法 excel画柏拉图

    excel柏拉图制作方法 excel画柏拉图在Excel中使用柏拉图可以更好的进行对统计好的数据进行辅助分析。在实际的应用中也是使用较多的一种图表。使用从高到低的排序形成矩阵,体现出现频率高低的一种图表。让我们看看在EXCEL中如何制作柏拉

    2022年 9月 9日
    140
  • 五河民间小调 五更想才郎

    五河民间小调 五更想才郎一更之儿里呀,月儿照花台呀,情郎哥哥啊定下巧计啊,今天晚上来。一等你没来呀,二等也没来,也不知道啊情郎我的哥,你在哪里搭下连台?叫了一声小丫鬟,快把酒来筛,你把那四个凉菜碟,收拾收拾端上来。二更之儿里来呀,月牙儿出正

    2022年 10月 28日
    2
  • 星期二右眼跳是有什么预兆 星期二右眼跳会发生什么事情

    星期二右眼跳是有什么预兆 星期二右眼跳会发生什么事情在古时候,人们已经发现有“左眼跳、右眼跳”的现象。中国人一贯认为,相生的两种事物肯定是一阴一阳,一好一坏,于是很自然地给这两种现象安上了“跳财、跳灾”的含义。至于是左眼跳财呢,还是右眼跳财

    2022年 10月 17日
    3
  • 小熊玻璃养生壶好吗 养生壶玻璃炸裂

    小熊玻璃养生壶好吗 养生壶玻璃炸裂快节奏的现代生活,其实白领的办公日常也是挺辛苦的,学会忙里偷闲,才能遇见更美好的自己!桂花银耳雪梨汤,白里透粉仿佛伴着鲜甜芬芳。午后水果茶,马不停蹄工作,也要不忘照料好自己。在办公桌备一个养生壶,随手热饮,

    2022年 12月 20日
    8
  • 一路向西男主角 一路向北香港无删减免费观看

    一路向西男主角 一路向北香港无删减免费观看9月20日,备受瞩目的香港三级片《一路向西》在港上映。自上映以来引起极大的反响,票房也一直高居不下,接着《一路向西》的激情剧照就曝光了,内容十分火爆。9月20日,备受瞩目的香港三级片《一路向西》在港

    2022年 10月 23日
    4
  • 小金条23号是什么颜色 小金条热门色号排名

    小金条23号是什么颜色 小金条热门色号排名小编以前对YSL的口红并不是很喜欢,小编有一段时间的姑娘应该知道,小编没少诟病YSL的质地。很多姑娘都不喜欢YSL圆管的质地:假润、卡唇纹、倒拔干,没多久嘴唇就干裂成一块一块的,死皮刷刷刷往下掉。其

    2022年 10月 12日
    4
  • 肉饼怎么做又软又好吃 最简单的煎猪肉饼

    肉饼怎么做又软又好吃 最简单的煎猪肉饼不熟的面包店,真的再也不想随便去了,饭饭昨天探了一家新店,奶油齁甜,真的腻了老半天,搞得我入睡前都在想第二天要怎么解这甜腻。还好饭饭的食谱库资源庞大,我很快就想到了一道美食——猪肉饼。之前总听大家说自己

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