js中向对象中添加属性的两种方法?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中向对象中添加属性的两种方法?相关的知识,希望对你有一定的参考价值。
视频讲解的是javascript面向对象编程语言中的关于创建对象的知识,重点讲解的是如何创建对象及添加属性,由于属于动态语言,所以我们可以随时的为对象添加属性。
参考技术A1.1 数据属性(`properties`),对象的普通属性将字符串名称映射到值。例如,下面对象obj有一个数据属性,名称为 prop,对应的值为 123:var obj = prop: 123;可以用以下方式读取属性的值:console.log(obj.prop); // 123,console.log(obj["prop"]); // 123,当然也可以用以下方式来设置属性的值:obj.prop = "abc";obj["prop"] = "abc";
1.2 访问器属性,另外,可以通过函数处理获取和设置属性值。 这些函数称为访问器函数。 处理获取的函数称为getter。 处理设置的函数称为setter:var obj = get prop () return 'Getter';,set prop (value) console.log('Setter: ' + value);访问 obj 属性:> obj.prop'Getter'> obj.prop = 123;Setter: 123。
1.3 内部属性一些属性只是用于规范,这些属于“内部”的属性,因为它们不能直接访问,但是它们确实影响对象的行为。内部属性有特殊的名称都写在两个方括号,如:内部属性[[Prototype]]指向对象的原型。它可以通过Object.getPrototypeOf()读取。它的值只能通过创建具有给定原型的新对象来设置,例如通过object.create()或__proto__ 。
内部属性[[Extensible]]决定是否可以向对象添加属性。可以通过Object.isExtensible() 方法判断一个对象是否是可扩展的(是否可以在它上面添加新的属性)。可以通过Object.preventExtensions()方法让一个对象变的不可扩展,也就是永远不能再添加新的属性。
属性特性(attribute),属性的所有状态,包括数据和元数据,都存储在特性(attribute)中。它们是属性具有的字段,就像对象具有属性一样。特性(attribute)键通常用双括号编写:
参考技术B var a = "a":1,"b":2;a["c"] = 3;
这样就成功往a里面添加了c属性
a = "a":1,"b":2,"c":3; 参考技术C var obj = name:'qjy',age:24;
alert('name='+obj.name);
alert('age='+obj.age);
------------------
var obj = new Object();
obj.flag= true;
obj.userId= 24;
alert(flag='+obj.flag);
alert(userId='+obj.userId);
或者给对象构造器赋值 参考技术D <script type="text/javascript">
<!--
/*
给原型 prototype 添加属性的两种方式
*/
//方式一
var myObj = function()
this.study = "JavaScript";
myObj.prototype.hobby = function()
this.hobby = "See girl";
var newObj = new myObj();
for ( var attr in newObj )
document.write( attr +"<br/>" );
document.write( "==================== <br/>" );
//方式二
var superObj = name:"xugang" ;
var subObj = age:20 ;
function extend(superObj,subObj)
//获得父对象的原型对象
subObj.getSuper = superObj.prototype;
//将父对象的属性给子对象
for(var i in superObj)
subObj[i] = superObj[i];
extend(superObj,subObj);
for ( var s in subObj )
document.write( s +"<br/>" ); //遍历子对象的属性
//-->
</script>本回答被提问者采纳
创建对象数组的两种方法以及对比
创建Object()对象
1 var t = new Object(); //创建了一个对象t. 2 //new:会创建一个对象,然后对象执行Object函数。最后返回一个对象实例 3 // js是一个动态语言,可以随时添加属性和方法 4 t.age = 19; 5 t.name = ‘jeck‘; 6 t.run = function(){ 7 console.log(‘我是你爸爸‘); 8 }; 9 t[‘demo‘] = ‘demo2‘ 10 11 //对象的使用 12 //第一种方式:使用点的方式,t.age t的年龄 13 console.log(t.age); 14 //第二种方式:使用中括号的方式,t[‘name‘] t的名字 15 console.log(t[‘name‘]); 16 console.log(t[‘demo‘]);
json方式创建对象
1 var t = { 2 age:19, 3 name:‘Tom‘, 4 run: function () { 5 console.log(‘王帅要跑路了‘); 6 } 7 }; 8 console.log(t.name);
Array创建数组
1 var arr = new Array(); 2 //console.log(arr); 3 arr[0] = 1; 4 //console.log(arr); 5 arr[1] = true; 6 //console.log(arr);
常规创建数组
1 var a1 = []; //创建空数组 2 var a2 = [1,2,‘sss‘,true,{age:19},null,undefined]; 3 4 // console.log(a2.toString); 5 console.log(a2);
以上是关于js中向对象中添加属性的两种方法?的主要内容,如果未能解决你的问题,请参考以下文章
js+jquery动态设置/添加/删除/获取元素属性的两种方法集锦对照(动态onclick属性设置+动态title设置)