`
j2ee_zhongqi
  • 浏览: 207105 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

js里面object对象

阅读更多
对象的存取方式有2种如下
meberA.name  ; meberA.age
或者
meberA["name"];  meberA.["age"]
当存在此属性时将修改属性的值,当不存在时候自动创建一个新的属性,并且赋值
由于整个js都是由对象构成的,所以说可以用以下函数查看某个对象所有的属性
function showAllProper(objname,strobjname){
var result= "";
for (var p in objname)
  reslut+=strobjname+"[\""+p+"\"]="+objname[p]+"\n";
return result;
}
使用时候
showAllProper(meberA,"mberA")
就会传回所有的属性

建立一个object对象大体有三种方法
1. 调用new运算符和Object对象  var obj=new Object() 或var obj=new Objct(value)
object对象没有任何属性,需要手动添加属性,方法如下
var memberA=new Object()
memberA.name="tony";
memberA.age=25;

meberA["name"]="tony";
meberA.["age"]=25;
2. 用大括弧{...}来直接描述属性和方法 var objectName={ propertyName1:value1,propertyName2:value2,propertyName3:value3 };
属性名称和属性值用冒号: 分开,每组属性用 逗号,分隔
如下所示
var memberA={
name:"tony",
age:25,
objpropname:{
propName1:value1,
propName2:value2
},
};
3. 自定义一个建构函数,然后和第一种方式一样用new来创建
function funcName( param1,param2,...,paramN){
this.property1=param1;
this.property2=param2;
....
this.propertyN=paramN;
}
声明完构建函数后,可以定义此对象类型对象:
var obj=new funcName(value1,value2,...,valueN);

定义对象的方法和定义对象属性很像,只要将函数名称指定给对象就可以了,或者直接定义函数
如下
function rect(w,h){
this.w=w;
this.h=h;
this.area=function(){
return this.w*this.h;
}

function calArea{
return this.w*this.h;
}
function rect(w,h){
this.w=w;
this.h=h;
this.area=aclArea;
}

注意定义完对象后可以使用delete来删除 属性或者对象
delete object_name;
delete object_name.property_name;

建立对象共同的属性和方法prototype
属性对象prototype就是让我们定义相同类型对象公用的属性和方法
function_name.prototype.property_name=proterty_value
具体如下
function calArea{
// this 会参考调用此方法的对象
return this.w*this.h;
}
function rect(w,h){
this.w=w;
this.h=h;
//this.area=aclArea;
}
rect.prototype.area=calArea;
建立对象公用属性后,可以用下面方式来参考值
function_name.prototype.poperty_name
或者
object_name.property_name
当读取公用的属性值或是调用公用的方法时,两种方式都可以,动脑是如果要更改公用的属性值,或者更改方法的定义
应该使用第一种方式,因为第二种方式会建立新的对象属性或者方法定义,并赋值。
新的对象属性是属于个别对象的,队日他们的名称和公用对象的属性名称一样,但它不是公用对象,类似于对象继承的override

建立类class的属性和方法
方法如下
function_name.property_name=proterty_value;
function_name.method_name=method_definition;
其中function_name为已经存在的建构函数名称
例如
function Circle(){
}
定义一个为PI的类属性
Circle.PI=3.14
定义一个为cal的类属性
Circle.cal=function(r){ return this.PI*r*r;};
其中this.PI和Circle.PI是一样的,这里的this不是调用此方法的对象参考,而是Circle本身的参考.

对象的继承
一个对象的构建函数可以借助它的prototype对象继承某个对象的所有属性
subfunction_name=new superFunction_name(...)
propotype 对象是用力定义由建构函数建立对象的共用属性和方法,所以将一个对象指定给它,使的prototype对象拥有此对象的所有属性和功能
例如
function Circle(radius)
{
this.radius=radius;
}
funcion colorCircle(radius,color){
this.radius=radius;
this.color=color;
}
function _toString{
return "cicle:="+this.radius;
}
colorCircle.prototype=new Circle(0)  // 或者 new Circle,继承Circle所有的属性
colorCircle.prototype.toString=_toString;  // 重载toString

constructor是prototype对象的一个属性,是对象构造函数的参考
function someFunc(){
...
}
x=new someFunc();
alert(x.constructor==someFunc);
会显示true
但是如下
function superFunc(){
}
function subFunc(){
}
x=new subFunc();  // x.constructor==subFunc
subFunc.prototype=new superFunc;
y=new subFunc();  // y.constructor==superFunc

alert(x.constructor==y.constructor);
会显示false
因为subObject的prototype变成了新建立对象的参考,而原来的prototype对象已经不在了,在继承前,prototype的constructor参考变成新对象的constructor参考
如果连续继承多次,那么它将会是最上层的constructor,解决方式是把它指回原来的constructor
subFunc.prototype.constructor=subFunc;
注意是用构造函数的subFunc的prototype.constructor不是对象的constructor
如果subFunc.constructor=subFunc;只会增加一个y的一个constructor属性
分享到:
评论

相关推荐

    js如何打印object对象

    js调试中经常会碰到输出的内容是对象而无法打印的时候,光靠alert只能打印出object标示,却不能打印出来里面的内容,甚是不方便,于是各方面整理总结了如下一个...另外当你需要将object对象转换为string字符串。 有下面

    js获取对象,数组所有属性键值(key)和对应值(value)的方法示例

    在JavaScript编程中,获取对象和数组的属性键值(key)和对应值(value)是一项基本操作。本文将详细介绍如何实现这一功能,并提供相应的代码示例。 首先,我们需要理解JavaScript中的对象和数组。对象是一种键值对...

    JavaScript中Function函数与Object对象的关系

    注意:官方定义: 在Javascript中,每一个函数实际上都是一个函数对象. 我们先来看最简单的两个代码,也是最容易理解的. function fn(){} var obj = {} console.log(fn instanceof Function)//true conso

    java的JsonObject对象提取值方法

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于网络通信及数据存储。本篇将详细介绍如何在Java中使用`JsonObject`来提取JSON数据中的值,主要通过阿里巴巴的Fastjson库和Jackson库来...

    前端JavaScript基础学习笔记案例

    基础语法,字符串操作,object对象,DOM对象,BOM对象,offset,client,scroll对象,事件,事件流处理,函数(call,apply,bind函数),作用域,闭包(十种闭包的应用场景),面向对象,正则表达式,还有js特效案例...

    Object.js:为 Object 类提供扩展能力。 OOP 现在更方便了!

    对象.js 为 Object 类提供扩展能力。 javascript中的OOP现在更方便了! (我希望)里面有什么? Object.prototype获得 2 个额外的东西: Parent :指向父原型的指针。 在Object : Parent = null的情况下,因为它是...

    JavaScript门道之标准库

    JavaScript原生提供一个Object对象,所有的其他对象均继承自这一对象 Object对象的属性和方法 利用console.dir(Object)查找Object对象的属性和方法 常用的属性或方法简介: 1.prototype对象 prototype是Object对象...

    js如何获取object类型里的键值

    最近遇到一个问题: 代码如下: var obj = {“name1″:”张三”,”name2″:”李四”};... 于是,我想到了js中遍历对象属性的方法: 代码如下: function printObject(obj){ //obj = {“cid”:”C0″,”ctex

    javascript面向对象技术基础

    在JavaScript中,由于所有对象都继承自`Object`,所以任何对象都可以拥有任何方法,这就实现了多态性。 ### 继承的其他方式 除了原型继承和ES6的类继承,JavaScript还支持其他继承模式,如寄生组合式继承、原型式...

    深入浅出JavaScript对象模型

    JavaScript中的对象 ECMA262规范一直在强调,“ECMAScript是一种基于对象(Object—Based)的语言,而不是传统的面向对象(Object—Oriented)的语言”。相信绝大多数人不会清楚这句话是什么意思。我想我们可以把它...

    crypto-js4.1.1版本,js在crypto-js文件夹里面

    `react-is`用于检测React元素的类型,`prop-types`提供组件属性验证,`object-assign`则用于对象合并,这些都是React开发中的常见工具。 总之,`crypto-js4.1.1`作为前端加密库,为JavaScript开发者提供了强大且...

    判断JS对象是否拥有某种属性的两种方式

    由于JavaScript中所有对象默认继承自Object.prototype,而toString方法是Object原型上的一个方法,所以在这里两个alert都返回了true。 接下来我们来了解hasOwnProperty方法。与in运算符不同,hasOwnProperty方法...

    object-injector:将原始对象的属性注入到另一个对象中

    #Object Injector 将选定的键从对象注入另一个对象。 版本:0.0.1 作者: Pablo Andrés Dorado Suárez ##object-injector(injectee, injectioner, [keys]) 将选定的键从一个对象注入另一个对象。 参数 被注入...

    javascript如何定义对象数组

    在JavaScript中,定义对象数组是一个常见的需求,尤其是在开发中需要处理多个相似数据项时。本文将介绍两种定义对象数组的方法,帮助开发者在编程过程中更加高效地管理数据。 首先,要理解什么是对象数组。对象数组...

    多层集合嵌套的JSON数据转化为Java对象(src.zip)

    在IT行业中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于服务器与客户端之间传递数据。Java作为一种常用的后端开发语言,需要处理这些JSON数据,将其转化为Java对象以便于操作。本主题...

    JS判断两个数组或对象是否相同的方法示例

    数组和对象作为JS中最基本的数据结构,它们的比较方法各有不同。具体到判断数组或对象的“相同”,通常涉及到是否包含相同的元素或属性以及这些元素或属性的排列顺序是否一致。 首先,判断两个数组是否相同,最简单...

    struts2的方式返回json到jsp页面 List,Map,Object,对象各种操作都有....MyEclipse的,导入直接看效果。

    jsp通过Ajax无刷新获取Action返回的模拟数据,然后通过struts2转化成json数据返回页面....这里面Map,List,对象等等,一些常用的操作都有。主要的代码在Action和 json.js里面。适合新手入门

    js检测数据类型

    由于javascript里面的数组和对象在 typeof 里面都是object,该代码用来区分js的数组和对象。

    fast-keys:Object.keys()的高性能替代品

    使用Object.keys确定对象中的键数是非常普遍的: const object = { foo : 1 , bar : 1 , baz : 1 } const keyLength = Object . keys ( object ) . length 为了确定键的长度,运行时将分配一个包含所有对象键的...

    TypeError object of type ‘type’ has no len()—Python报错问题:

    翻译过来是类型为“type”的TypeError对象没有len(),我报错的代码是: #coding=utf-8 print(请输入一个字符串:) a = input('') #回文的长度至少为2 if len(str) < 2: print('请不要输入空字符串!') a = ...

Global site tag (gtag.js) - Google Analytics