JS和JQ的总结:对象

1、对象的基本操作  create  set  query delete test  enumerate

2、对象的属性特性  可写  可枚举  可配置(是否可删除)

3、对象的对象特性

对象的原型 prototype

对象的类  标示对象类型的字符串

对象的扩展标记  是否可添加新属性

//创建对象的三种方法

4、对象直接量

var empty = {};

var point = {x:0,y:0};

5、new创建对象

var o = new Object();  //空对象  和{}一样

var a = new Array();

6、Object.create()

var o1 = Object.create({x:1,y:2});  //o1 继承自对象原型{x:1,y:2}

var o2 = Object.create(null);       //o2不继承任何属性和方法

var o3 = Object.create(Object.prototype);

//空对象和 {} new Object()一样

7、属性的操作  作为关联数组的对象

object.property

object["property"]   散列  映射  字典 关联数组

8、继承

js的继承只能从父类获取属性的值,而不能修改原型链

如果对象book为null或undefined

book.subtitle.length会报错

解决方法

var len = book && book.subtitle && book.subtitle.length;

删除属性

delete book.subtitle

检测属性  in  hasOwnPreperty()  propertyIsEnumerable()

var o = {x:1};

"x" in o

"toString" in

hasOwnPreperty();判断属性是否是自己的。继承属性返回false

propertyIsEnumerable() 只有是自有属性,并可枚举

获取所有属性

Object.keys()

Object.getOwnPropertyNames()

9、属性getter和setter

var o = {

x: 0,

y: 1,

set r(value) { value = this.r;},

get r() { return this.x + this.y;}

};

x数据属性,r存取器属性

10、属性的特性  ecmascript5   老的ie不支持如下用法

数据属性的特性:值value 可写性writable

可枚举enumerable

可配置configurable

存取器属性特性:get  set

可枚举enumerable

可配置configurable

//返回{value:1,writable:true,emunerable:true,configurable:true}

Object.getOwnPropertyDescriptor({x:1},x)

//查不到属性 返回undefined

设置属性的特性  不能修改继承的属性特性

Object.defineProperty()

//设置不可枚举属性

var o = {};

Object.defineProperty(o,"x",{

value:1,

writable:true,

emunerable:false,

configurable:true

})

//设置只读

Object.defineProperty(o,"x",{writable:false})

修改多个属性特性

Object.defineProperties()

扩展Object.prototype   书 P137

11、对象的三个属性

prototype  class  extensible attribute

查询对象的原型

ecmascript5中 Object.getPrototypeOf(o1)

ecmascript3中 o1.constructor.prototype

通过对象直接量或new Object()方式创建的对象

包含一个constructor的属性,指Object()的构造函数

constructor.prototype才是真正的原型

p.isPrototypeOf(o)检测对象p是否是o的原型

//获取对象的类型 字符串

Object.prototype.toString.call(o1).slice(8,-1)

12、对象的可扩展性

对象是否可以新加属性

Object.preventExtensions() 设置对象不可扩展

Object.isExtensible()

Object.seal()  除了将对象设置为不可扩展,还将属性设置为不可配置

Object.freeze()

除了将对象设置为不可扩展,将属性设置为不可配置,还把属性设置为只读

时间: 2024-12-27 02:42:27

JS和JQ的总结:对象的相关文章

JS和JQ的event对象对比和应用

摘要 js和jq的event对象大同小异,本文简单对比下它们的'click'事件下的不同和应用 js jquery jq event 代码测试: ? 1 2 3 4 5 6 7 <div id= "test" ><p>test text<p></div> <script src= "vendor/jquery-2.1.1.js" ></script> <script> test.ad

前端双引号单引号,正则反向引用,js比较jq

1.js,jq,css,html属性必须双,如果同时出现需要嵌套使用,属性的规范是双但是也可以用单测试有效 单引号现象举例:jq中获取元素标签是单引号:$('input').click:弹出也是单引号: alert('aaaa'):jq根据id获取元素和设置css都一般用单引号:$('#box').css('color', 'red'); 上述两种情况全部换成双引号也是行的!2.分号的用法: {}作为函数体一般是不需要分号结束的,()一般需要分号结束,除非作为一个函数的参数就不需要分号:3.js

JS搞基指南----延迟对象入门提高资料整理

原文:JS搞基指南----延迟对象入门提高资料整理 JavaScript的Deferred是比较高大上的东西,  主要的应用还是主ajax的应用,  因为JS和nodeJS这几年的普及,  前端的代码越来越多,  各种回调套回调再套回调实在太让人崩溃, 所以就从后端拖了一个延迟对象这货, 用来解决回调地狱这个问题 .  我们使用ajax的时候多数都是为ajax添加回调 ,然后异步向服务器发送请求, 比如如下原生的XHR代码: <!DOCTYPE html PUBLIC "-//W3C//D

【整理】原生js和jQ获取窗口宽高及滚动条的方法和函数

原生js和jQ获取窗口宽高及滚动条的方法和函数 一.原生js获取 1.实际宽高(不包括工具栏,滚动条的视口高度,ie6.7.8不支持) window.innerHeight window.innerWidth 2.显示屏宽高 screen.height screen.width 3..显示屏宽高(除windows任务栏之外的高度)屏幕可用工作区 screen.avaiHeight screen.availWidth 4.网页可见区域宽高 document.body.clientWidth doc

JS中的内置对象简介与简单的属性方法

JS中的数组: 1.数组的概念: 数组是在内存中连续存储的多个有序元素的结构,元素的顺序称为下标,通过下标查找对应元素 2.数组的声明: ①通过字面量声明var arr1 = [,,,,] JS中同一数组可以储存多种不同的数据类型(但,同一数组一般只用于存放同种数据类型) 例如var arr1 = [1,"2",true,{"name":"啦啦啦"},[1,2]]; ②通过new关键字声明:var arr2 = new Array(参数); &g

javascript不依赖JS加载顺序事件对象实现

背景: 在现在WEB开发中,稍复杂一点的页面,都会涉及到多个模块,尤其是类似seajs.LABjs.requireJS等模块工具出来后,前端开发者分模块开发已经慢慢变成一种习惯了,但是多个模块间的常常有各种交集,需要通信.需要互相调用,这时监听者模式便是必不可少的一种设计模式了,在前端表现事件操作.backbone和jquery都有提供了很好的事件处理方式. 但是,真正开发需求的时候我们常常会遇到文件加载顺序跟事件监听与更新不一致的需求,比如说:在一个视频网站里面,有一个视频处理的JS模块和用户

用js 对拥有多个对象的数组进行排序

我们想要根据某个对象属性对数组进行排序.而传递给数组sort()方法的比较函数要接收两个参数,即要比较的值.可是,我们需要一种方式来指明按照哪个属性来排序.要解决这个问题,可以定义一个函数,它接收一个属性名,然后根据这个属性名来创建一个比较函数,下面就是这个函数的定义. 1 function createComparisonFunction(propertyName) { 2 return function (object1, object2) { 3 var value1 = object1[

jsp的C标签一般使用方法以及js接收servlet中的对象及对象数字

jsp的C标签一般使用方法以及js接收servlet中的对象及对象数组 由于现流行的javaWeb框架提倡前后端分离,比如在SpringMvc中已经很少写servlet的一些东西:目前 前端jsp中大多是一些纯html和js,很少用到jstl的一堆东西,后端也仅仅处理一些前端的post.get请求或页面跳转,无须以往繁琐的xml路径映射和filter过滤. 不过有时也会用到servlet作用域中的一些东西,比如某个固定的值.上下文路径等等~,不过这些东西大多数也仅限于取值而不是设置值(或对象),

JS与JQ的区别

1.获取元素 <重点> var info=document.getElementById("tex1"); var info=$("#tex1"); 2.获取值<重点> var info=document.getElementById("tex1").value; var info=$("#tex1").val(); //对于文本框等有value属性的(例如input.radio.checkbox等)可

zepto.js按需加载模板对象

Zepto.js 是支持移动WebKit浏览器的JavaScript框架,具有与jQuery兼容的语法.2-5k的库,通过不错的API处理绝大多数的基本工作.这里要说说它的load方法,原型是: load(url, function(data, status, xhr){ ... }) ? self 其描述这样说道: Set the html contents of the current collection to the result of a GET Ajax call to the gi