惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy International News Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Troy Hunt's Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
V2EX - 技术
V2EX - 技术
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
O
OpenAI News
Cloudbric
Cloudbric
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Spread Privacy
Spread Privacy
NISL@THU
NISL@THU
N
News and Events Feed by Topic
T
Tenable Blog
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
P
Proofpoint News Feed
Webroot Blog
Webroot Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
L
LangChain Blog
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东

博客园 - 墨尘

xmlhttp的OnReadyStateChange事件 简单的mysql热备 技术之路也要懂得理财-------林左鸣:建设军工强国的5条锦囊妙计 magento迁移后后台无法登录解决方法 Android实用工具Hierarchy Viewer实战 SEO如何做有效的外链 加勒比海盗主题曲 小提琴版 apache 编译 rewrite 模块 linux 下php扩展模块的单独编译 转帖:linux 下注册apache开机自启动 混迹于威客 SQL 2005数据类型说明 转帖:PL/SQL 格式化指南 (PL/SQL Formatting Guide) 简述在Access中使用“存储过程” 趋势投资十种有效工具 关于临界点类型算数问题的分析 逻辑推理 应该在别人恐惧时贪婪吗? 404错误!
javascript中的对象 - 墨尘 - 博客园
墨尘 · 2011-02-07 · via 博客园 - 墨尘

转帖http://www.cnblogs.com/wangwei123/archive/2010/05/12/1733084.html

javascript中的对象创建声明:var obj = {}; 或者 var obj = new Object(); 

    为对象加入属性,方法:

//=====第一种写法====================================

    obj.name 

= '小明';    //为对象加属性

    obj.updateName 
= function(name){//为对象定义updateName方法
        this.name = name;
    }

    alert(obj.name);

    obj.updateName(

"小强");    //调用updateName修改obj对象的name属性值 

    alert(obj[
'name']);

    第一次显示结果为:小明

    第二次显示结果为:小强

//=====第二种写法====================================

    obj[
'name'= '张三';     //为对象加属性
    obj['updateName'= function(name){//为对象定义updateName方法
        obj['name'=name;
    }; 

    alert(obj.name);

    obj.updateName(

'李四');    //调用updateName修改obj对象的name属性值 

    alert(obj[
'name']);

    第一次显示结果为:张三

    第二次显示结果为:李四

//=====第三种写法====================================

    
var obj = {
        name:  
'王五',    //为对象加属性
        updateName: function(name){//为对象定义updateName方法
            this.name = name;      
        }
    };

    alert(obj .name);

    obj.updateName(

"赵六");    //调用updateName修改obj对象的name属性值

    alert(obj .name);

    第一次显示结果为:王五

    第二次显示结果为:赵六

//=====分析=====================================

    第一种写法是最普通的对象写法,因为javascript是动态语言,与Java和.Net不同,

    在程序运行并创建对象后,还可以对该对象的内部结构进行修改,

    比如添加属性和方法(java和.net中的反射机制做不到这点)。

    (a): 

var obj = {} || new Object();

    (b):obj.name 

= "张三";

    (c):obj.updateName 

= function(name){ this.name = name};

    当程序执行(a) 后,便创建了一个空对象(不包含任何方法和属性)obj,

    当程序执行(b) 后,改变了obj的内部结构,加了一个属性name,

    当程序执行(c) 后,改变了obj的内部结构,加了一个方法updateName ,

    而这都是在运行的时候完成的动作

    第二种写法像数组,但绝不是数组,区分是不是数组可以如此判断:

if(typeof(obj.length) == "undefined") {
        alert(
"obj不是数组,数组都有length属性!");
    }
else{
        alert(
"obj是数组!");
    }

    第二种写法更像一种数据结构:map ,如:obj[key] 

= value;

    key是字符串,value可以是任何类型,变量,对象,函数等。

    可以通过这种方式遍历对象内部结构:

for(var key in obj)
    {
        alert(key);
var value = obj[key];

        alert(value);
    }

    通过alert可以显示出你所定义的内容。

    第三种写法一看就是map的内部结构了,一个对象,内部完全用key : value键值对方式表示

    JSON对象也是这种结构,只要对map或者JSON对象有所熟悉的就很容易理解了。