位置: 编程技术 - 正文

浅谈JavaScript中的对象及Promise对象的实现(javascriptz)

编辑:rootadmin

推荐整理分享浅谈JavaScript中的对象及Promise对象的实现(javascriptz),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript的理解,javascript definitive guide,细说javascript,javascript definitive guide,细说javascript,javascript总结,javascript总结,细说javascript,内容如对您有帮助,希望把文章链接给更多的朋友!

JavaScript 中的所有事物都是对象:字符串、数值、数组、函数。下面小编给大家收集整理些javascript中的对象及promise对象的实现。具体内容如下:

到处都是对象

window对象

常用的属性和方法介绍

location

  包含页面的URL,如果改变这个属性,浏览器会访问新的URL

status

  包含将在浏览器状态去显示的一个串。一般在浏览器左下角

onload:

  包含了需要在页面完全加载后调用的函数

document:

  包含DOM

alert方法:

  显示一个提醒

prompt方法:

  类似于alert,不过会从用户那得到信息

open

  打开一个新窗口

close

  关闭窗口

setTimeout:

  指定的时间间隔后调用一个处理函数

setlnterval

  以一个指定的时间间隔反复调用一个处理函数

谈谈window.onload

通过向window的onload属性指定一个函数,可以确保在页面加载和DOM完全建立之前不会运行代码。

用于改变DOM的函数

我们之所以不说window.inload = init(),是因为我们不是调用函数,而是要使用它的值。

 将一个函数的值赋给window对象的inload属性,让它在页面加载完后,执行。

 创建window.onload处理程序有两种方法-----使用函数名和使用匿名函数。

 这两种方法基本上都会做同一件事,但如果赋给window.onload的函数还要在别处使用,则选择使用函数名

document对象

常用的属性和方法介绍

domain:

  提供文档的服务器的域,如kelion.com.

title:

  通过document.title,可以获得文档的标题

URL:

浅谈JavaScript中的对象及Promise对象的实现(javascriptz)

  文档的URL

getElementById方法:

  根据元素id获取这个元素

getElementsByTagName,

getElementsByClassName:

  这两个方法类似前一个,只不过他们使用标记和类来获取元素

createElement:

  创建适合包含在DOM中的新的元素

谈谈createElement

注:在进行第8行代码前,li元素始终都是独立于DOM之外的

元素对象

常用的属性和方法介绍:

innerHTML:

  包含元素的内容

childElementCount:

  保存元素的个数

firstChild

  第一个子元素

appendChild方法:

insertBefore方法:

  用于插入元素,作为一个元素的子元素

getAttribute方法setAttribute方法

  使用者两个方法来设置和获取元素中的属性:如“src”,“id”,“class”等

最后来了解下button对象

button对象有一个经常用的属性:

    onclick(用于监听一个按钮是否被按下了)。 

var button = document.getElementById("Button"); //button只是一个变量名,可以是button1,button2等等,但本质是一个按钮 button.onclick = handleButtonClick;

ps:浅谈Javascript中Promise对象的实现

很多做前端的朋友应该都听说过Promise(或者Deferred)对象,今天我就讲一下我对Promise的认识

What?

Promise是CommonJS的规范之一,拥有resolve、reject、done、fail、then等方法,能够帮助我们控制代码的流程,避免函数的多层嵌套。如今异步在web开发中越来越重要,对于开发人员来说,这种非线性执行的编程会让开发者觉得难以掌控,而Promise可以让我们更好地掌控代码的执行流程,jQuery等流行的js库都已经实现了这个对象,年底即将发布的ES6也将原生实现Promise

Why

想象这样一个场景,两个异步请求,第二个需要用到第一个请求成功的数据,那么我们代码可以这样写

如果继续下去在回调函数中进行下一步操作,嵌套的层数会越来越多。我们可以进行适当的改进,把回调函数写到外面

即使是改写成这样,代码还是不够直观,但是如果有了Promise对象,代码就可以写得非常清晰,一目了然,请看

new Promise(A).done(B);

这样函数B就不用写在A的回调中了

How

目前的ES标准中还未支持Promise对象,那么我们就自己动手,丰衣足食吧。思路大致是这样的,用2个数组(doneList和failList)分别存储成功时的回调函数队列和失败时的回调队列* state: 当前执行状态,有pending、resolved、rejected3种取值* done: 向doneList中添加一个成功回调函数* fail: 向failList中添加一个失败回调函数* then: 分别向doneList和failList中添加回调函数* always: 添加一个无论成功还是失败都会调用的回调函数* resolve: 将状态更改为resolved,并触发绑定的所有成功的回调函数* reject: 将状态更改为rejected,并触发绑定的所有失败的回调函数* when: 参数是多个异步或者延迟函数,返回值是一个Promise兑现,当所有函数都执行成功的时候执行该对象的resolve方法,反之执行该对象的reject方法

下面是我的具体实现过程:

目前只是实现了Promise的基础功能,但仍然还有无法处理的情况,例如要实现3个或3个以上的异步请求的串行,目前我的Promise没有办法支持new Promise(A).then(B).then(C)这样的形式,jQuery在1.7的版本中为Deferred(Promise)对象实现了pipe函数,可以通过这个函数实现上述功能,代码为$.Deferred(A).pipe(B).then(C),我尝试去读了jQuery这部分的代码,但是没能读懂,希望有大神能够给一些实现思路

JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同 函数表达式和函数声明在ECMAScript中,创建函数的最常用的两个方法是函数表达式和函数声明,两者期间的区别是有点晕,因为ECMA规范只明确了一点:函

javascript入门教程基础篇 一、简介1、什么是javascriptJavaScript是网景(Netscape)公司开发的一种基于客户端浏览器、面向(基于)对象、事件驱动式的网页脚本语言。2、为什么要

关于javascript中dataset的问题小结 DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,或者关

标签: javascriptz

本文链接地址:https://www.jiuchutong.com/biancheng/384606.html 转载请保留说明!

上一篇:javascript 中的 delete及delete运算符(js的delegate)

下一篇:JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同(javascript中函数的作用域分为全局作用域)

  • 金税盘开票软件密码忘记怎么办
  • 税后经营净利率和营业净利率的区别
  • 收到原材料发票的会计分录
  • 银行存款余额调节表编制
  • 公司股权关系怎么填写
  • 换公司后个税app上没有显示缴费记录
  • 开票金额比实际金额多
  • 免税的开成有税率的怎么办
  • 纳税人采取预收的措施
  • 有哪些税收政策类型
  • 财政补贴金额
  • 公司水费怎么做账
  • 政府扶持资金科目怎么做?
  • 资产减值损失转回的账务处理
  • 混合销售行为如何界定
  • 股东借款利息代扣代缴增值税是怎样算的?
  • 水利建设专项收入怎么计算
  • 公司奖励旅游算休年假吗
  • 未抵扣增值税入什么科目
  • 成交转化率的计算公式电脑
  • 1697508432
  • 启用或关闭windows功能怎么勾选
  • 华为nova10pro支持多少倍变焦
  • 给供应商垫付运费合法吗
  • php新手入门
  • reg.dll是什么
  • php oci_connect
  • 跨境服务免征增值税需要一直备案吗
  • php 缓存
  • PHP:pcntl_wifstopped()的用法_PCNTL函数
  • 出口退税率的调整方法
  • servlet工作原理和生命周期
  • php实现数据库创建题库
  • 哪些费用报销可以不用发票
  • 股东分红应该在哪个科目
  • 自制半成品属于原材料还是库存商品
  • php怎么获取post数据
  • 商贸企业发生退税的原因
  • docker管理系统
  • 新建利润表
  • 管理成本分摊比例是多少
  • php网站首页的源码在哪里
  • mysql5.7免安装版
  • 设计模式模板方法和策略模式对比
  • 百旺连接服务器失败,是否使用离线文件进行更新
  • 分公司可以独立签约吗
  • 技术服务费怎么收合理
  • 企业所得税营业成本包括管理费用吗
  • 公司基本账户提额怎么算
  • 更正会计差错的方法
  • 住宿发票抵税
  • 2017年6月,小张买了一台笔记本电脑,其主要硬件参数
  • 小规模纳税人购买税控设备
  • 在外地设办事处需要办什么手续
  • 收入 摊销
  • 新增社保需要工资表和记账凭证吗
  • 资产负债表与利润表的勾稽关系公式
  • 付给非公司员工提成税务处理
  • 购买增值税发票系统金税盘如何入账?
  • 会计复式记账法题目
  • 企业租用个人房屋的财税处理
  • windowsserver2008r2standard激活
  • win8 win8.1
  • win10如何连接远程电脑
  • xp系统的ie浏览器无法打开该网页怎么办
  • win10资源管理器启动不了
  • windows错误1058
  • win7 win8.1双系统安装教程
  • linux系统有哪几个
  • win7笔记本触摸板怎么开启
  • javascript的基本语句
  • 简单射击原理
  • android javascript 混淆配置。
  • 不是批处理文件
  • network备份软件
  • 安卓状态栏宽度
  • js滚动条怎么调出来
  • jquery插件是干什么的
  • Android之fill_parent和wrap_content
  • 国家税务认证平台是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设