`
阅读更多

javascript也是面向对象的语言。

通常var a = {} 对象用大括号表示。

大括号中可以包含

属性 a:1,

方法 tostring:function(){alert("string")},

数组 array:[1,2,3,4,5],

其他对象 b:{c:"fff",d:"ggg"}。

 

转一个创建js对象的方法帖子(http://www.cnblogs.com/lucas/archive/2009/03/17/1411656.html)

 

 

一、由一对大括号括起来

复制代码
    var emptyObj = {};
    
var myObj =
    {
        
'id'1,        //属性名用引号括起来,属性间由逗号隔开
        'name''myName'
    };
    
//var m = new myObj(); //不支持
复制代码
 
  不知你注意到对象都是用 var 声明的没有,像上面的代码,就只是简单的声明一个对象,它只有一份拷贝,你不能像实例化类对象一样对它采用new操作,像上面代码的注释部分。这样就极大的限制了对象的重用,除非你建立的对象只需要一份拷贝,否则考虑用其他方法建立对象。
  下面一起看看如何访问对象的属性和方法。
复制代码
    var myObj =
    {
        
'id'1,
        
'fun'function() {
            document.writeln(
this.id + '-' + this.name);//以"对象.属性"方式访问
        },
        
'name''myObj',
        
'fun1'function() {
            document.writeln(
this['id'+ '+' + this['name']);//以集合方式访问
        }
    };
    myObj.fun();
    myObj.fun1();
    
// 结果
    // 1-myObj 1+myObj 
复制代码
二、用 function 关键字模拟 class
在 function 中用 this 引用当前对象,通过对属性的赋值来声明属性。如果用var声明变量,则该变量为局部变量,只允许在类定义中调用。
复制代码
        function myClass() {
            
this.id = 5;
            
this.name = 'myclass';
            
this.getName = function() {
                
return this.name;
            }
        }
        
var my = new myClass();
        alert(my.id);
        alert(my.getName());
        
// 结果
        // 5
        // myclass
复制代码
三、在函数体中创建一个对象,声明其属性再返回
在函数体中创建对象可利用第一点的方法,或先 new Object(); 再为各属性赋值。
不过用这种方式创建的对象在VS2008 SP1中是没有智能提示的。

复制代码
        function myClass() {
            
var obj =
            {
                
'id':2,
                
'name':'myclass'
            };
            
return obj;
        }
        
function _myClass() {
            
var obj = new Object();
            obj.id 
= 1;
            obj.name 
= '_myclass';
            
return obj;
        }
        
var my = new myClass();
        
var _my = new _myClass();
        alert(my.id);
        alert(my.name);
        alert(_my.id);
        alert(_my.name);

        
// 结果
        // 2
        // myclass
        // 1
        // _myclass

验证以上创建js对象效果的一个验证demo(用ext的onReady做的)
// JavaScript Document
Ext.onReady(function(){
	alert("fff");
	var one = new Object(testclass);
	var two = new Object(testclass);
	one.a = 2;
	alert(two.a);
	var three = new myclass();
	var four = new myclass();
	three.id = 1;
	alert(four.id);
	var five = new mySecClass();
	var six = new mySecClass();
	var seven = new myThirdClass();
	var eight = new myThirdClass();
	five.value = 10;
	alert(six.value);
	seven.value = 10;
	alert(eight.value);
	});
	
var testclass = {
	 a:1,
	 b:'dirk',
	 tostring : function(){
		 alert("fffeee");
		 },
	array:[1,2,3,4,5]
	}
	
function myclass(){
	this.id = 5;
            this.name = 'myclass';
            this.getName = function() {
                return this.name;
            }
	
	}
function mySecClass()
{
	var a = Object();
	a.value = 1;
	return a;
}

function myThirdClass()
{
	var a ={
		value:1,
		tostring:function()
		{
			alert("mytridclass");}
	}
	return a;
}
 结论:
验证得出第一种方法,构建的是一个对象,改变任何原型或某个对象数据,都会影响其他对象数据。
其他两种方法实例的对象,当改变原型或某个对象,不会影响其他对象。



分享到:
评论

相关推荐

    deePool高效的JavaScript对象池

    DeePool通过实现JavaScript对象池,为开发者提供了一种优化内存使用、提高程序运行效率的有效手段。尤其在需要大量创建和销毁对象的场景下,使用DeePool可以显著提升性能,减少内存压力。掌握并合理运用DeePool,...

    js对象属性排序

    本篇文章将深入探讨JavaScript对象属性排序的原理、方法以及注意事项。 首先,了解JavaScript对象的基本特性是至关重要的。在ECMAScript规范中,对象的属性访问速度并不依赖于属性的位置或顺序,因为它们内部是通过...

    js 面向对象实例

    每个JavaScript对象都有一个`__proto__`属性,指向创建该对象的构造函数的原型。原型对象也是一个对象,可以通过`prototype`属性来访问。我们可以在原型上定义方法,这样所有实例都可以访问这些方法: ```...

    JS 对象实例讲解和应用

    JavaScript(简称JS)是Web开发中的重要脚本语言,尤其在客户端编程中不可或缺。本文将深入探讨JS对象的实例创建、属性与方法、原型链、继承机制以及在实际应用中的常见场景。 一、JS对象实例的创建 1. 构造函数...

    JS对象与数组参考大全

    JavaScript对象具有原型链,允许对象继承其他对象的属性和方法。`__proto__`(非标准,推荐使用`Object.getPrototypeOf`)指向其构造函数的原型: ```javascript var parentObj = { parentMethod: function() {} }; ...

    json字符串和js对象之间的转换

    在JavaScript中,JSON字符串与JavaScript对象之间可以方便地进行转换,这对于数据传输和存储至关重要。本篇文章将深入探讨JSON字符串与JS对象之间的转换方法。 1. `eval` 函数转换 `eval()` 是JavaScript中的一个...

    有关js对象的操作和遍历对象小练习带注释.html

    有关js对象的操作和遍历对象小练习带注释.html

    Qt6 QML Book/JavaScript/JS对象示例源码

    - **对象与数组**:如何定义JavaScript对象和数组,并在QML中使用它们来存储和操作数据。 - **函数与方法**:定义和调用JavaScript函数,以及在QML对象上添加自定义方法。 - **信号与槽**:利用JavaScript处理QML的...

    android中js对象C层扩展步骤说明及源码

    这个类将作为JavaScript对象的实现,需要包含以下内容: ```cpp #include <JavaScriptCore/JavaScript.h> class MyJsObject : public JSGlobalContextRef::GlobalObject { // ... }; ``` 在这个类中,你可以定义...

    全国地图城市坐标JS对象

    XPath是一种在XML文档中查找信息的语言,但在JavaScript对象中,城市名称通常不需要XPath来访问。而“有无城市名称后缀”,可能是指某些城市坐标信息中可能包含了额外的信息,比如“市”或“区”的后缀,这取决于...

    JS 对象与数组的监听实例

    总的来说,理解并掌握JavaScript对象和数组的监听机制,有助于我们更好地实现MVVM,提高代码的可维护性和性能。通过这个实例,开发者可以深入学习到如何利用原生JavaScript实现数据绑定和实时更新,这对于前端开发者...

    【JavaScript源代码】js对象的读取速度实例详解.docx

    ### JavaScript对象读取速度实例详解 #### 一、引言 在JavaScript开发中,了解对象的访问机制对于提高代码执行效率至关重要。本文将基于提供的文件信息,深入探讨JS对象读取速度的影响因素,并通过具体示例来展示...

    JS 对象,属性

    JavaScript对象允许动态添加、修改和删除属性,无需预先声明。 五、原型与继承 在JS中,每个对象都有一个隐式原型属性 `__proto__`,指向创建它的构造函数的原型。这使得对象可以继承其他对象的属性和方法。通过 `...

    CSSobj是一款CSS样式整合工具从Js对象中整合出CSSOM可以封装CSS样式以及动态更新样式

    这时,`CSSobj`应运而生,它是一款高效、便捷的工具,能够帮助开发者将JavaScript对象中的样式规则整合成CSSOM(CSS Object Model),从而实现对CSS样式的动态管理。 **什么是CSSOM?** CSSOM是CSS的DOM表示形式,...

    javascript对象大全

    "JAVASCRIPT对象属性大全.doc"和"js对象属性方法大总结.doc"可能涵盖了JavaScript对象的属性和方法,包括但不限于原型链(prototype)、原型对象(__proto__)、构造函数(constructor)、以及如何添加和访问对象的...

    js对象编程一例

    标签"工具"可能指的是开发者工具,如浏览器的开发者工具,它们提供调试、性能分析等功能,帮助我们理解JavaScript对象编程的实现和行为。 在提供的Noname2.html文件中,可能包含了一个具体的JavaScript对象编程示例...

    JS对象之JSON详解[参考].pdf

    JavaScript对象(JS Objects)在JSON中扮演着核心角色。一个JS对象本质上是一个键值对的集合,这些键值对由逗号分隔,并被包裹在花括号{}内。键(key)通常是字符串,而值(value)可以是各种数据类型,包括字符串、...

    javaScript对象大全

    javaScript对象大全-javaScript必备手册-JS资料-JS教程.doc

    js对象基本知识

    这些基础知识构成了JavaScript对象模型的基础,理解和熟练掌握这些概念对于编写JavaScript代码至关重要。在实际编程中,我们经常结合使用这些对象和方法来实现各种功能,如数据处理、用户交互等。随着学习的深入,还...

Global site tag (gtag.js) - Google Analytics