奋斗的博客

开源、创新!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  34 随笔 :: 0 文章 :: 164 评论 :: 95566 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

 

复制代码
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对象有所熟悉的就很容易理解了。

 
复制代码

 

 

posted on   奋斗  阅读(730)  评论(3编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示