`
podormeijia
  • 浏览: 5080 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

(思考)Ajax第一篇 JavaScript之引用类型

    博客分类:
  • Ajax
阅读更多
(觉得自己一直思考太少且深度不够,所以加上这个前缀提醒自己-思维才是核心竞争力。)
一、JavaScript之面向对象,读书笔记加上自己的一些思考。Javascript的对象分为两种,一种表示的是已命名的值的无需集合;另一种表示的是有编号的值的有序结合即Array。
引用类型是一种数据结构,用来将数据与功能组成在一起。
有必要解释一下javascript中的对象:即一些”名-值“对(named values)所组成的集合。需要注意的是name只能是string类型,而value类型不限。
Object:已命名的数据集合
创建方式有两种,第一种构造函数创建:
var person =new Object();
person.name ="Yancy";
person.sex ="man";
person.age =25;

第二种Object Literals创建:(用来简化属性的赋值过程)
var person = {
    name : "Yancy";
    sex : "man";
    age : 25
};

需要注意的有三点:1.属性名与值之间用colon连接;2.最后一个属性后没有semicolon; 3.close brace后有semicolon,仅仅是句子结束后的sign而已。
用Literals传参数:
function displayinfo(args){
    var output ="";
    if(typeof args.name ==“string”){
        output +="Name:"+args.name+"\n";
    }
    if(typeof args.sex==“string”){
        output +="Sex:"+args.sex+"\n";
    }
    if(typeof args.age =="number"){
        output +="Age:" +args.age +"\n"
    }
    alert(output);
}
displayinfo({
    name : "Yancy";
    sex : "man";
    age : 25
});
displayinfo({
    name : "Shane"
});

对Object Literals的理解,其实并没有所谓的对象,仅仅是把”named values“结合在了一起而已。
ArrayData,Number,Boolean,String类型很容易,不再赘述;RegExp是no essential的,用时再看。
注意的是:delete操作符用以删除对象中的某个属性,
         in操作符用以判断某个属性是否存在并可以使用
Function:函数实际上是对象,每个函数都是Functin类型的实例,于其他引用类型一样具有属性和方法,因此函数名实际上是一个指向函数对象的指针.
创建方式:
//function declare
function sum(num1,num2){
    return num1 +num2;
}
//function expression
var sum =function (num1,num2){
    return num1 +num2;
};
//another style
var sum =new Function("num1","num2","return num1 +num2");//no recommend

注意function declare是解析器首先读取的,而function expression是在执行到它时才会读取的。Function内部有两个特殊的对象arguments和this,arguments是一个类数组对象,保存着传入Function的所有参数,arguments还有一个callee属性,指向拥有这个arguments对象的函数;this代表函数在执行时所处的环境对象;而Function自己作为一个对象,也有属性和方法。每个Function都有两个属性length和prototype,两个方法apply和call。
length:代表的是所传参数的个数;
prototype:通过对象实例访问的区域,相当于静态变量;
apply和call:在特定的作用域中调用函数,注意第一个参数是作用域;
分享到:
评论

相关推荐

    javascript权威指南第五版(英文原版)

    1. **基础语法**:变量、数据类型(包括基本类型和引用类型)、操作符、流程控制(条件语句、循环、异常处理)、函数、对象等。 2. **高级特性**:闭包、原型链、作用域、this关键字、函数表达式、箭头函数、模块化...

    【卷一/共两卷】AJAX实战pdf高清版90M

    第一部分 重新思考Web应用 第1章 一种新的Web设计方法 1.1 为什么需要Ajax富客户端? 1.1.1 比较用户体验 1.1.2 网络延迟 1.1.3 异步交互 1.1.4 独占或瞬态的使用模式 1.1.5 忘掉Web 1.2 Aiax的四个基本原则 1.2.1 ...

    JavaScript 高级程序设计(第三版)源码

    1. **基础语法**:JavaScript的基础包括变量、数据类型(如基本类型和引用类型)、运算符、流程控制(如条件语句和循环)以及函数。通过源码,你可以看到这些元素在实际代码中的运用,加深对它们的理解。 2. **对象...

    亮剑.NET深入体验与实战精要2

    第1篇 技术基础总结 第1章 .NET,你真的知道了吗 3 1.1 搞清自己是干什么的 4 1.2 .NET的几个特性 7 1.3 万丈高楼平地起:面试者必会 9 1.3.1 C#介绍 10 1.3.2 命名空间 10 1.3.3 C#语法格式要点 10 1.3.4 变量 12 ...

    亮剑.NET深入体验与实战精要3

    第1篇 技术基础总结 第1章 .NET,你真的知道了吗 3 1.1 搞清自己是干什么的 4 1.2 .NET的几个特性 7 1.3 万丈高楼平地起:面试者必会 9 1.3.1 C#介绍 10 1.3.2 命名空间 10 1.3.3 C#语法格式要点 10 1.3.4 变量 12 ...

    THP_PLS_JS

    5. **函数与闭包:** 函数是JavaScript中的第一类对象,可以作为参数传递,也可以作为返回值。闭包则是能够访问其自身作用域、外部函数作用域甚至全局作用域的函数。 6. **异步编程:** 包括回调函数、Promise、...

    jquery标签支持图文排列带按钮的选项卡

    // 初始激活第一个选项卡 $('.tabs li:first-child').addClass('active'); $('.tab-content:first').show(); // 处理点击事件 $('.tabs a').click(function(e) { e.preventDefault(); // 阻止默认的跳转行为 ...

    ASP.NET 控件的使用

    第一部分 构建ASP.NET页面 第1章 ASP.NET Framework概览 2 1.1 ASP.NET和.NET Framework 5 1.1.1 框架类库 5 1.1.2 公共语言运行库 9 1.2 ASP.NET控件 10 1.2.1 ASP.NET控件概览 11 1.2.2 HTML控件 12 1.2.3 理解...

    .net聊天室代码

    - 第二层 `frameset` 使用了垂直分割(`cols` 属性),将第一层的第一个部分再分为两部分。 - **框架页面引用**: - `listmsg.aspx`:展示消息列表的页面。 - `getmsg.aspx`:用户输入消息的页面,不支持滚动和...

    jquery 图片 上一张 下一张 链接效果(续篇)

    插件编写的第一步通常是确定插件的默认设置。在文件中,定义了一个名为`defaults`的对象,它包含了若干属性,包括鼠标在图片上时显示的样式、标题以及链接的URL地址。在`defaults`对象中,“upCursor”和...

Global site tag (gtag.js) - Google Analytics