精华内容
下载资源
问答
  • 数组对象的属性名和属性值的提取

    万次阅读 2016-08-01 18:17:09
    有一个对象数组,里面存储着通讯录。 函数 lookUp 有两个参数: firstName prop 。 函数将会检查通讯录是否存在 firstName prop 属性。 如果它们都存在,函数返回prop属性对应的。 如果firstName ...

    <span style="font-family: 'Microsoft YaHei'; line-height: 18.1818px; white-space: pre-line; background-color: rgb(255, 255, 255);">有一个对象数组,里面存储着通讯录。</span>

    函数 lookUp 有两个参数: firstNameprop

    函数将会检查通讯录是否存在 firstName值 和 prop 属性。

    如果它们都存在,函数返回prop属性对应的值。

    如果firstName 值不存在,返回"No such contact"

    如果prop 属性不存在,返回"No such property"

    //Setup
    var contacts = [
        {
            "firstName": "Akira",
            "lastName": "Laine",
            "number": "0543236543",
            "likes": ["Pizza", "Coding", "Brownie Points"]
        },
        {
            "firstName": "Harry",
            "lastName": "Potter",
            "number": "0994372684",
            "likes": ["Hogwarts", "Magic", "Hagrid"]
        },
        {
            "firstName": "Sherlock",
            "lastName": "Holmes",
            "number": "0487345643",
            "likes": ["Intriguing Cases", "Violin"]
        },
        {
            "firstName": "Kristian",
            "lastName": "Vos",
            "number": "unknown",
            "likes": ["Javascript", "Gaming", "Foxes"]
        }
    ];
    
    
    function lookUp(firstName, prop){
    
      for (var i in contacts)
      {if (contacts[i].firstName === firstName && prop in contacts[i])
         return contacts[i][prop];}
      for ( i in contacts)
      {  if (prop in contacts[i] ===false)
         return  "No such property";  
      }
      for ( i in contacts)
      {  if (contacts[i].firstName !== firstName)
         return "No such contact";}
      
    }
    
    // Change these values to test your function
    lookUp("Akira", "address");

    关于属性名和属性值:

    在这个案例中,contacts[i].firstName 指的是属性值,prop in contacts[i]提取的是属性名,由于是嵌套数组形式({[属性名:值],[属性名:值]},所以需要添加i,遍历i组的属性名和属性值。


    以下方法转自某网友的代码,使用hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。

    <span style="font-family:Microsoft YaHei;">for(var i=0;i<contacts.length;i++){
    if(contacts[i].firstName==firstName){
    if(contacts[i].hasOwnProperty(prop)){
    return contacts[i][prop];
    }
    else{return "No such property";}
    }
    }return "No such contact";</span>



    展开全文
  • 属性可以是基本对象和函数)。 属性类型 对象属性类型有两种,一种是数据属性,是数据的保存位置;另一种是访问器属性,包含gettersetter函数。 数据属性 数据属性包含一个数据的位置,在这个位置可以...

    理解对象

    ES5中的对象是指无序的属性的集合。(属性可以是基本值、对象和函数)。

    对象的属性类型有两种,一种是数据属性,是数据值的保存位置;另一种是访问器属性,包含getter和setter函数。

    1.1 数据属性

    数据属性包含一个数据值的位置,在这个位置可以读取和写入值。数据属性有四个描述其特征的特性。(这些特性是为javascript内部引擎服务的,不能直接访问,所以将它们放在方括号中。)

    1. [[Configurable]]:表示能否通过 delete 删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。默认值为true。
    2. [[Enumerable]]: 能否通过for-in循环返回属性。默认值为true。
    3. [[Writable]]:能否修改属性的值,默认值为true。
    4. [[Value]]: 属性的数据值,默认为undefined。

    !!!此处说的默认值是指直接定义时的默认值,与使用defineProperty()定义的属性默认值不同

    数据属性可以直接使用对象字面量或new Object对象来定义,而这些特性值不能直接访问,要修改默认的特性,要使用定义在Object对象中的defineProperty()函数

    !!!在调用 Object.defineProperty()方法时,如果不指定configurable、enumerable 和writable 特性的默认值都是 false。

    示例如下:

    // 使用对象字面量创建一个对象
    var person = {};
    
    //修改该对象属性的默认特性
    /*
    	第一个参数为属性所在的对象。
    	第二个参数为要定义的属性名。
    	第三个参数是其特性描述符的对象。(属性为configurable, enumerable, writable, value)
    */
    Object.defineProperty(person, "name", { 
     writable: false, 
     value: "Nicholas" 
    });
    
    //这样就可以访问定义好的数据属性了
    alert(person.name); //"Nicholas" 
    
    //在定义属性时将writable设定为false,所有对name属性的值更改操作无效。(严格模式下会报错)
    person.name = "Greg"; 
    alert(person.name); //"Nicholas"
    

    另外将把 configurable 设置为 false,表示不能从对象中删除属性。如果对这个属性调用 delete,则在非严格模式下什么也不会发生,而在严格模式下会导致错误。一旦把属性定义为不可配置的,就不能再把它变回可配置了。 此时,Object.defineProperty()方法修改除 writable 之外的特性,都会导致错误。

    1.2 访问器属性

    访问器属性不包含数据值,包含一对 getter 和 setter 函数(不必需)。
    在读取访问器属性时,会调用 getter 函数,这个函数负责返回有效的值;
    在写入访问器属性时,会调用setter 函数并传入新值,这个函数负责决定如何处理数据。
    访问器属性也包含了四个特性。

    1. [[Configurable]]: 表示能否通过 delete 删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为数据属性。默认值为true。
    2. [[Enumerable]]: 能否通过for-in来访问属性。默认值为true。
    3. [[Get]]: 读取属性时调用的函数。默认值为undefined。
    4. [[Set]]:写入属性时调用的函数,默认值为undefined。

    访问器属性不能直接定义,必须要使用Obiect.defineProperty()来定义。定义的过程于数据属性类似。

    var book = { 
     _year: 2004,  //'_'是一种常用于表示只能通过对象方法访问的属性的记号
     edition: 1 
    }; 
    /*
    	第一个参数为属性所在的对象。
    	第二个参数为要定义的访问器属性名。
    	第三个参数是其特性描述符的对象。(属性为configurable, enumerable, get, set)
    */
    Object.defineProperty(book, "year", { 
    // 访问一个私有变量
     get: function(){ 
     return this._year; 
     }, 
     // set常用于改变一个变量导致其他变量改变的情形
     set: function(newValue){ 
     if (newValue > 2004) { 
     this._year = newValue; 
     this.edition += newValue - 2004; 
     } 
     } 
    }); 
    book.year = 2005; 
    alert(book.edition); //2
    

    不一定非要同时指定 getter 和 setter。
    只指定 getter 意味着属性是不能写,在非严格模式下尝试写入属性会被忽略。
    类似地,只指定 setter 函数的属性也不能读,在非严格模式下会返回 undefined。
    在严格模式下,尝试写入只指定了 getter 函数的属性和读取只指定了 setter函数的属性会抛出错误。

    定义多个属性

    上面介绍的Object.defineProperty()方法只能定义单个属性,Object.defineProperties()方法可以通过描述符一次定义多个属性。
    !!!在调用 Object.defineProperties()方法时,如果不指定configurable、enumerable 和writable 特性的默认值都是 false。
    示例如下:

    var book = {}; 
    Object.defineProperties(book, { 
    	//定义数据属性
    	 _year: { 
    	 	value: 2004 
    	 }, 
    	 edition: { 
    	 value: 1 
    	 }, 
    	 // 定义访问器属性
    	 year: { 
    		 get: function(){
    		 	return this._year; 
    		 }, 
    		 set: function(newValue){ 
    			 if (newValue > 2004) { 
    			 this._year = newValue; 
    			 this.edition += newValue - 2004; 
    		 	} 
    	 	} 
    	} 
    });
    

    读取属性的特性

    JS中的Object。getOwnPropertyDescriptor()方法可以取得给定的对象属性描述符。对上一节中定义的book对象,有以下示例:

    // 该方法接受两个参数  第一个参数是对象   第二个参数是对应的属性
    var descriptor = Object.getOwnPropertyDescriptor(book, "_year"); 
    alert(descriptor.value); //2004 
    alert(descriptor.configurable); //false
    alert(typeof descriptor.get); //"undefined" 
    
    var descriptor = Object.getOwnPropertyDescriptor(book, "year"); 
    alert(descriptor.value); //undefined 
    alert(descriptor.enumerable); //false 
    alert(typeof descriptor.get); //"function"
    

    在 JavaScript 中,可以针对任何对象——包括 DOM 和 BOM 对象,使用 Object.getOwnPropertyDescriptor()方法。

    展开全文
  • PropertyRetrievingFactoryObject是IFactoryObject接口的实现类,用于将其它对象或类型的属性值注入给对象的属性或构造器参数。该类可以从对象或类型中(静态属性)获取任何公有属性的值。如果要用...

    PropertyRetrievingFactoryObject是IFactoryObject接口的实现类,用于将其它对象或类型的属性值注入给对象的属性或构造器参数。该类可以从对象或类型中(指静态属性)获取任何公有属性的值。

    如果要用PropertyRetrievingFactoryObject获取实例属性的值,需要为其指定目标对象及属性名,目标对象可以是任意其它对象,甚至可以是内联对象。如果要获取静态属性,则需要指定目标类型的全名和属性名。

    然后,通过PropertyRetrievingFactoryObject对象的id即可获取目标对象或类型的属性值,获取的结果可直接注入给对象的属性或构造器参数。注意,实例属性和静态属性都支持嵌套。

    下面使用PropertyRetrievingFactoryObject获取目标对象的属性值。在此目标对象的属性值是个内联的对象定义,所以在PropertyRetrievingFactoryObject对象定义的TargetProperty属性中,使用了嵌套式的属性路径。

    <object name="person" type="Spring.Objects.TestObject, Spring.Core.Tests">
      <property name="age" value="20"/>
      <property name="spouse">
        <object type="Spring.Objects.TestObject, Spring.Core.Tests">                      
          <property name="age" value="21"/>
        </object>
    
      </property>          
    </object>
            
    // will result in 21, which is the value of property 'spouse.age' of object 'person'        
    <object name="theAge" type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core">
      <property name="TargetObject" ref="person"/>
      <property name="TargetProperty" value="spouse.age"/>
    </object>

    下面是使用PropertyRetrievingFactoryObject获取静态属性的方法:

    <object id="cultureAware" 
            type="Spring.Objects.Factory.Xml.XmlObjectFactoryTests+MyTestObject, Spring.Core.Tests">
      <property name="culture" ref="cultureFactory"/>
    </object>
    
    <object id="cultureFactory" 
            type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core">
      <property name="StaticProperty">
          <value>System.Globalization.CultureInfo.CurrentUICulture, Mscorlib</value>
    
      </property>
    </object>

    类似的,获取实例属性的方法如下:

    <object id="instancePropertyCultureAware" 
            type="Spring.Objects.Factory.Xml.XmlObjectFactoryTests+MyTestObject, Spring.Core.Tests">
      <property name="Culture" ref="instancePropertyCultureFactory"/>
    </object>
    
    <object id="instancePropertyCultureFactory" 
            type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core">
      <property name="TargetObject" ref="instancePropertyCultureAwareSource"/>
      <property name="TargetProperty" value="MyDefaultCulture"/>
    
    </object>
    
    <object id="instancePropertyCultureAwareSource" 
            type="Spring.Objects.Factory.Xml.XmlObjectFactoryTests+MyTestObject, Spring.Core.Tests"/>
    
    展开全文
  • js 遍历对象属性

    千次阅读 2013-09-02 10:42:24
    遍历JavaScript某个对象所有的属性名称和值的方法,这样想使用方法的时候非常的直观方便。代码如下: /* * 用来遍历指定对象所有的属性名称和值 * obj 需要遍历的对象 * author: Jet Mah */ function ...

    遍历JavaScript某个对象所有的属性名称和值的方法,这样想使用方法的时候非常的直观和方便。代码如下:

    /* 
    * 用来遍历指定对象所有的属性名称和值 
    * obj 需要遍历的对象 
    * author: Jet Mah 
    */ 
    function allPrpos ( obj ) { 
    // 用来保存所有的属性名称和值 
    var props = "" ; 
    // 开始遍历 
    for ( var p in obj ){ 
    // 方法 
    if ( typeof ( obj [ p ]) == " function " ){ 
    obj [ p ]() ; 
    } else { 
    // p 为属性名称,obj[p]为对应属性的值 
    props += p + " = " + obj [ p ] + " \t " ; 
    } 
    } 
    // 最后显示所有的属性 
    alert ( props ) ; 
    } 

    AJAX的JavaScript的反射机制,反射机制指的是程序在运行时能够获取自身的信息。例如一个对象能够在运行时知道自己有哪些方法和属性。 在JavaScript中利用for(…in…)语句实现反射,其语法如下: 
    <script type="text/javascript"> 
    // 创建一个对象 myObject 以及三个属性 sitename, siteurl, sitecontent。 
    var myObject = new Object(); 
    myObject.sitename = "sara"; 
    myObject.siteurl = "http://blog.csdn.net/haiqiao_2010"; 
    myObject.sitecontent = "sara csdn播客"; 
    //遍历对象的所有属性 
    for (prop in myObject) 
    { 
    document.write("属性 '" + prop + "' 为 " + myObject[prop]); 
    document.write(" "); 
    } 
    </script> 



    展开全文
  • 因为是新手,有什么写的不好的地方还希望大家能够出来。有什么更好的解决方法也希望大家能提出来,一起交流分享!(小弟在这里先谢谢大家) 直接上代码: 1、jsp页面代码 首先定义两个按钮,添加一些常规属性type...
  • 2.什么属性什么对象,直间的关系 写在类里面,同时又写在方法外,只要被允许的就要做属性 复合数据类型的 就叫做对象 比如:程序员之间开玩笑,说到没有对象,就new出来一个对象 所以 new出来的就是对...
  • js判断对象属性是否存在的方法

    千次阅读 2018-08-31 09:49:49
    判断对象中是否有某属性的常见方式总结,...当然,这里的“不存在”的是对象自身原型链上都不存在,如果原型链有该属性,则会返回原型链上的属性值。 // 创建对象 let test = {name : 'lei'} // 获取对象的...
  • js中Object对象常用方法和属性

    千次阅读 2017-12-04 22:16:08
    Object自带一个prototype的属性,即Object.prototype,Object.prototype本身也是一个对象,也会有一些属性和方法。如下:  1、属性  Object.prototype.writable:默认为false  Object.prototype.enumerable:...
  • 首先,这里所的单字符形如:Y,男。 有两种做法: a. b.   解释如下: 因为java是强类型语言,单引号表示char类型,而双引号则表示String类型。所以a中可以正常使用,而b中则需要用toString()方法将...
  • window对象属性和方法

    千次阅读 2016-11-04 11:35:21
    window对象属性和方法 分类:jswindow对象属性  Window对象是客户端javascript最高层对象之一,只要打开浏览器窗口,不管该窗口中是否有打开的网页,当遇到BODY、FRAMESET或FRAME元素时,...
  • 和对象、方法和属性

    千次阅读 多人点赞 2018-07-30 17:06:08
    2、类:具有相似属性和方法的对象的集合  是具有相同数据成员函数成员的一组对象的集合,它为属于该类的全部对象提供了抽象的描述。 3、面向对象程序设计的特点:封装 继承 多态  封装:面向对象技术中的封装...
  • css属性列表 属性值含义

    千次阅读 2007-10-29 10:33:00
    css属性列表 属性名称字体属性(Font)font-familyfont-stylefont-variantfont-weightfont-size颜色背景属性ColorBa
  • form表单HTML5、CSS3标签及属性、属性值 form表单HTML标签、属性、属性值: (单行文本输入框) (密码输入框) (单选框) (多选框) (提交按钮) (重置按钮) 或者按钮(空按钮) (下拉框选...
  • js系列教程2-对象、对象属性全解

    千次阅读 2017-08-09 18:50:47
    //定义对象引用,或者var student1 = {},new Object()。所有的包装类都派生于Object。Object基类包含hasOwnProperty、isPrototypeOf、propertyIsEnumerable、toLocaleString、toString、valueOf方法 student1.name ...
  • 另外需要说明的一点,这里所说对象包括functionObject,而不是单Object二、数据属性:Configurable:true|false,表示能否通过delete将属性删除,默认为true。当把属性的Configurable设置为false后,该属性不能...
  • css属性列表__属性值含义大全

    千次阅读 2012-10-29 13:06:00
    css属性列表 属性值含义 CSS属性: 1、媒体(Media)类型  样式单的一个最重要的特点就是它可以作用于多种媒体,比如页面、屏幕、电子合成器等等。特定的属性只能作用于特定的媒体,如"font-size"属性只对...
  • QML 静态属性绑定

    千次阅读 2017-03-05 18:03:48
    可以为 QML 对象中的属性分配两种类型的 - 静态值和...属性绑定是 QML 的一个核心特性,允许指定不同对象属性之间的依赖关系。当属性的依赖项(属性绑定中的变量)的发生改变时,属性将根据指定的关系自动更新。
  • javascript中String 对象属性和方法

    万次阅读 2004-09-26 15:54:00
    属性1.constructor 指定创建一个对象...这包括除了 arguments、Enumerator、Error、Global、Math、RegExp、Regular Expression VBArray 对象以外的所有内部 JScript 对象。constructor 属性包含了对某种函数的引用,
  • readyState属性 有5个取值:0、1、2、3、4,表示HTTP请求的状态...理论上,每当这个属性发生变化时都会触发readyStateChange事件,但实际上,只有此属性改变为4时才会触发readyStateChange事件。 readyState
  • 今天网上Java Tang博客找到了一个用来遍历JavaScript某个对象所有的属性名称和值的方法,这样想使用方法的时候非常的直观方便。代码如下: /* * 用来遍历指定对象所有的属性名称和值 * obj ...
  • 微信小程序两种为对象属性赋值的方式 对应config.wxml  阶段一  对应config.js data:{  //定义对象 configs:{} } //方式一 switchChange:function(e){  //为对象的某一属性赋值  ...
  • 对象是JS的基本数据类型。对象是一种复合,ta
  • 摘要: 在java编程中,我们经常不知道传入自己方法中的实体类中到底有哪些方法,或者,我们需要根据用户传入的不同的属性来给对象设置不同的属性值,那么,java自带的反射机制可以很方便的达到这种目的,同时,又可以...
  • JS 对象属性"可枚举

    千次阅读 2013-11-14 23:57:10
    对象属性可枚举,表示该属性的不可修改,可认为该属性是常量。 如何定义不可枚举的属性? var obj = {name: 'jack', age:23} Object.defineProperty(obj, 'id', {value : '123', enumerable : false }); ...
  • const定义的对象属性是否可以改变?

    千次阅读 2020-10-21 10:23:07
    是否可以修改对象属性? 答案是可以。 原因:对象是引用类型的,const定义的ac中保存的是指向对象的指针,这里的“不变”的是指向ac的指针不变,而修改ac中的属性并不会让指向对象的指针发生变化,所以用const...
  • python动态获取对象属性和方法

    千次阅读 2017-11-03 16:32:52
    首先通过一个例子来看一下本文中可能用到的对象和相关概念。#coding:utf-8 import sysdef foo():passclass Cat(object): def __init__(self, name='Kitty'): self.name = name def sayHi(self): print self.name,...
  • 目录(?... python 动态获取对象属性和方法,并执行它们 By admin ( 三月 2, 2011 at 10:58 下午) · Filed under 编程, python, 反射, 自省 首先通过一个例子来看一下本文中可
  • PHP 类和对象(类的属性

    千次阅读 2017-12-16 17:03:33
    在类中定义的变量称之为属性,通常属性根数据库中的字段有一定的关联,因此 也可以称其为"字段"。 常见的属性声明是由关键字public,protected,var或private开头,后面跟一个普通的变量声 来组成。还有一些...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 528,412
精华内容 211,364
关键字:

对象的属性和属性值是指什么