位置: 编程技术 - 正文

JS 创建对象(常见的几种方法)(js创建对象的方法有哪些)

编辑:rootadmin
贴个代码先: function O(user,pwd){ //use constructor this.user=user; this.pwd=pwd; this.get=get; return this; } function O2(user,pwd){ //use factory var obj=new Object(); obj.user=user; obj.pwd=pwd; obj.get=get; return obj; } function O3(){ //use prototype } O3.prototype.user='abc'; O3.prototype.pwd='dis'; // O3.propotype.get='get'; //O3.prototype.get(){ //alert(this.pwd); //} function O4(user,pwd){ this.user=user; this.pwd=pwd; return this; } O4.prototype.get=function(){alert('');} //function get(){ //alert("This User:"+this.user); // } function test2(){ //var a=new O2('Us','Pw'); use factory & constructor //var a=new O3(); //use prototype //a.get(); var a=new O4('*U4','P4'); //混合 //a.user='Not ABC'; //set new property //alert(a.user); a.get(); } 常用的MS 就这几种,可能还有其它的.碰到再说吧.... 题外话:昨天手欠,试图用alert(window.appName)到ff之下去查看浏览器版本,结果弹出的竟然是Netscape,咋不是 firefox。继而又跑去chrome下试验,又一次弹出了Netscape。baidu搜 Netscape 竟然发现js就出自Netscape公司。惭愧啊惭愧!!!研究了这么久的js都不认识祖师爷。于是又跑去找了找族谱,原来js出自Brendan Eich之手,年他创造js时候,也不过就岁。哎呀,真是白活了,如他一般老的我,到现在都学不会js,真是人比人气死人。。js当初设计的时候,没有想到自己能从一部打电话用的手机变成集拍照,上网,游戏,电话于一身的智能机。真是造化弄人!!!也许各中的神奇,连Brendan Eich本人都没有想到。应该说Brendan Eich创造了js,而一大批的js牛人成就了今天如此复杂的js。 js不是木有类么?没关系,人家不是设计了原型属性么~ js不是木有块级作用域么?没关系,人家不是有作用域链么~ js怎样实现成员变量私有化?哦,用闭包解决吧~ 哦,这么多基本概念,彻底的晕掉了,路漫漫其修远兮。 言归正传,本文讨论几种js创建对象的方法,先从最好理解的工厂模式开始: 这里先定义o为一个空的对象,然后为o设置了一堆属性。其实也可以直接给o属性的嘛,所以如果这样写也是ok的。 还有一种办法是利用无敌的this,因为this就表示当前运行时的对象,将构造函数this的作用域指向新对象,将当前运行对象的属性和方法都赋给新对象,这样对象模式称为构造函数模式 在这个例子中,tanya和ansel都有一个constructor属性,该属性指向person。 考虑一下如下的情况: 发现两次弹出的都是ansel,这是因为不用new的话,就不是一个person的实例,而仅仅在执行函数。而在全局作用域调用一个函数时this总是指向Global对象。而Global对象在浏览器中就是window对象。 我们还可以用构造模式在另外一个对象中调用sayName方法,还记得Apply和call么,来吧再考虑另外一种情况, 原型模式就要考虑原型链了,分析一下,sayName方法在实例中被重复定义了两次,但其实没有必要创造两个一样的副本。使用原型方法,可以使是tanya和ansel的共享一个sayName方法。 于是原型模式的写法如下: 实际应用时,不是一成不变的套用某种模式,活学活用。需要共享方法的时候就用原型模式,需要使用副本的时候就用构造模式,还可以结合起来,把所有信息都封装在构造函数中,而通过在构造函数中初始化原型,使得对象保持了同时使用构造函数和原型的优点。

推荐整理分享JS 创建对象(常见的几种方法)(js创建对象的方法有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

JS 创建对象(常见的几种方法)(js创建对象的方法有哪些)

文章相关热门搜索词:js创建对象的方式,js创建对象的两种方法以及区别,js创建对象有几种方式,js中创建对象,js创建对象的三种方式,js创建对象的三种方式,js创建对象有几种方法,js创建对象有几种方法,内容如对您有帮助,希望把文章链接给更多的朋友!

JS 继承实例分析 functionP(name){this.name=name;this.p1=function(){alert('ParentConstructor');}returnthis;}functionC(name,id){//this.method=P;//this.method(name);//1stmethod//P.call(this,name);//2ndmethodP.apply(this,

Javascript 对象的解释 所有的构造器都是对象,而并非所有的对象都是构造器.每个构造器都有一个用来实现原型继承、共享属性的Prototype属性。对象通过new表达式创建;比如

js继承 Base类的源码解析 //timestamp:Tue,May::/*base2.js-copyright,

标签: js创建对象的方法有哪些

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

上一篇:jabsorb笔记_几个小例子第1/2页

下一篇:JS 继承实例分析(js实现继承的几种方式详述(推荐))

  • 税控服务费怎么记账
  • 建筑行业分包款要分项目扣除吗
  • 无销项税额
  • 企业所得税纳税人包括哪些类型
  • 个人独资公司需要报税吗
  • 本月计提所得税费用
  • 分公司借款给总公司
  • 费用怎样确认是可抵扣暂时性差异?
  • 收到抵账车辆无发票
  • 公司的日常开销开发票怎么写
  • 预收房款如何申报缴纳增值税
  • 临时建筑进项税可以一次抵扣吗?
  • 收到保险公司退款
  • 购买原材料发生的采购费用计入
  • 财务管理和会计学哪个好就业
  • 所有者权益合计是负数是什么意思
  • 水电费的增值税计入什么科目
  • 哪些税金计入存货成本
  • 跨年度冲减收入
  • 免征税收入和不征税收入的区别
  • 华为鸿蒙系统的服务
  • PHP:xml_parser_create_ns()的用法_XML解析器函数
  • 差额征税通俗理解
  • 物流公司的收入来源有哪些
  • PHP:Memcached::quit()的用法_Memcached类
  • 设备进项抵扣新政策
  • 应付票据抵付应付账款
  • RuntimeError: (PreconditionNotMet) The third-party dynamic library (cudnn64_7.dll) that Paddle depen
  • 加利福尼亚riverside
  • 股东分红企业代扣个税
  • php 集成环境
  • 只有进项税没有销项
  • opencv识别车牌
  • python机器人编程控制
  • php array_multisort 对数组进行排序详解及实例代码
  • 独立的分公司可以注册吗
  • c语言的空指针
  • 企业注销时实收资本清算时要作资产处置收益交所得税吗
  • 利润表三步法
  • 零申报企业所得税怎么申报
  • 国家退税收到的钱在哪里
  • 帝国cms建站教程
  • python中如何创建文件
  • centos7.9 防火墙
  • 长期股权投资其他债券投资公允价值变动
  • 资产负债表中衍生金融资产项目应根据什么科目填列
  • 增值税电子普通发票和专票的区别
  • 企业所得税的征税对象和纳税人分别负有的纳税义务
  • 公司买的材料做什么分录
  • 个人所得税汇算年收入不超过12万
  • 公司宿舍楼出租让我当甲方违法吗
  • 企业账户里的政府账户
  • 厂房的使用寿命
  • 甲企业于2019年3月1日以2000万元取得乙上市公司
  • 主营业务成本如何做分录
  • 公司股东为另一家公司全股
  • 怎么样建账做账
  • mysql三层架构
  • win7系统摄像头打不开
  • win7网络不好怎么办
  • window7 aero
  • ubuntu20.4 ssh
  • dxva2.dll是什么意思
  • macbook怎样充电
  • 用diskgenius硬盘格式转换怎么使用
  • 系统解决问题的方法
  • 听歌播放失败什么意思
  • unix网络命令
  • linux在网络方面的应用
  • 用什么命令最简单
  • 从零开始咋样
  • 教你三招让电脑打字
  • [android] android开发中常用的Eclipse快捷键
  • 批处理程序删除文件夹中临时文件
  • node.js的express
  • bud3d跑酷
  • Javascript removeChild()删除节点及删除子节点的方法
  • 云南省国家税务总局云南省电子税务局
  • 秀屿区国税局服务电话
  • 别墅与普通住宅的优缺点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设