js怎么创建对象

贴个代码先: 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('123');} //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 就这几种,可能还有其它的

操作方法

  • 01

    本文讨论几种js创建对象的方法,先从最好理解的工厂模式开始

  • 02

    这里先定义o为一个空的对象,然后为o设置了一堆属性。其实也可以直接给o属性的嘛,所以如果这样写也是ok的。

  • 03

    还有一种办法是利用无敌的this,因为this就表示当前运行时的对象,将构造函数this的作用域指向新对象,将当前运行对象的属性和方法都赋给新对象,这样对象模式称为构造函数模式

  • 04

    在这个例子中,tanya和ansel都有一个constructor属性,该属性指向person。 考虑一下如下的情况:

  • 05

    发现两次弹出的都是ansel,这是因为不用new的话,就不是一个person的实例,而仅仅在执行函数。而在全局作用域调用一个函数时this总是指向Global对象。而Global对象在浏览器中就是window对象。 我们还可以用构造模式在另外一个对象中调用sayName方法,还记得Apply和call么,来吧再考虑另外一种情况,

  • 06

    原型模式就要考虑原型链了,分析一下,sayName方法在实例中被重复定义了两次,但其实没有必要创造两个一样的副本。使用原型方法,可以使是tanya和ansel的共享一个sayName方法。 于是原型模式的写法如下:

  • 07

    实际应用时,不是一成不变的套用某种模式,活学活用。需要共享方法的时候就用原型模式,需要使用副本的时候就用构造模式,还可以结合起来,把所有信息都封装在构造函数中,而通过在构造函数中初始化原型,使得对象保持了同时使用构造函数和原型的优点。

(0)

相关推荐

  • js访问对象的两种法法

    js访问对象的两种法法 操作方法 01 新建HTML文件 02 创建对象输出位置 03 js创建对象 04 js获取对象输出位置 05 输出对象 06 预览效果如图 07 创建另一种对象输出方式 08 ...

  • JavaScript创建对象的四种方式

    操作方法 01 1.对已有对象进行扩充方法和属性 var object = new Object(); object.name = "zhangsan";//每个对象需要写这些语句 ...

  • 彻底清除浏览器js和css缓存的方法

    问题:页面修改js或者css,但是不能展现效果,用ie的删除cookie和清除缓存不起作用 方法:C:/Users/Thinkpad/AppData/Local/Microsoft/Windows/T ...

  • IE浏览器不能运行js JS代码失效不能运行了如何解决

    IE不能运行js,在IE浏览器js代码失效,js不能运行了怎么办,一些网站里面的js特效不能使用了,一些效果都没法显示出来。 如果你的IE不能打开js脚本(连系统里所有的js文件都不运行,网页上的js ...

  • YUI Compressor使用配置方法 JS/CSS压缩工具

    YUI Compressor 是一个用来压缩 JS 和 CSS 文件的工具,采用Java开发。 YUI Compressor下载地址:http://www./softs/25860.html 使用方法 ...

  • 浏览器不能运行JS/VBS脚本解决办法

    浏览器不能运行JS/VBS脚本 症状:进不了QQ空间; 看不到漂浮广告、登录框; 所有JS/VBS效果无法显示; 总之很多网页显示不全。 解决办法: 在运行对话框里输入 regsvr32 jscrip ...

  • 禁止IIS缓存静态文件(png.js.html等)的方法

    禁止IIS缓存静态文件(png、js、html等)背景:IIS为了提高性能,默认情况下会对静态文件js、html、gif、png等做内部缓存,这个缓存是在服务器iis进程的内存中的。IIS这么做在很大 ...

  • 让Editplus自动格式化css和js 的插件

    今天正好看了一下editplus 的用户工具,它允许通过命令行调用和标准输出输出与其它程序进行交互,可以传入参数可以手动指定,也可以是当前选定内容,当前本件所有文本等,即然这样我们就利用它的filte ...

  • 去掉Myeclipse对JS等文件的验证(Cannot return from outside a function or method)

    在用Myeclipse导入新工程或在写代码时,最郁闷的就是它对js,jsp,html的验证太严格了,有时会呈现一个红叉或者一个黄色的感慨号,一运行就报Cannot return from outsid ...