`
gyht0808
  • 浏览: 114952 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JavaScript读书笔记四

阅读更多

 

创建对象最简单方式就是创建一个Object实例,然后添加属性和方法

 

var person = new Object();
person.name = "Miles";
person.age = 24;
person.job = "Software Engineer"

person.sayName = function() {
    alert(this.name);
};

person.sayName();
 

这种方法有个明显的缺点:使用同一个借口创建很多对象,会产生大量的重复代码

 

为了解决这个方法,我们可以使用工厂模式的一种遍体

 

function createPerson(name, age, job) {
    var o = new Object();
    o.name = name;
    o.age = age;
    o.job = job;
    o.sayName = function() {
        alert(this.name);
    };
    return o;
}

var person1 = createPerson("Miles", 24, "Software Engineer");
var person2 = createPerson("Jenny", 24, "Doctor");

person1.sayName();  //"Miles"
person2.sayName();  //"Jenny"
   

工厂模式虽然解决了创建多个想死对象的问题,但没有解决对象识别的问题(即怎样知道一个对象的类型)

 

随着js的发展,构造函数模式出现了

 

function Person(name, age, job) {
    this.name = name;
    this.age = age;
    this.job = job;
    this.sayName = function() {
        alert(this.name);
    };
}

var person1 = new Person("Miles", 24, "Software Engineer");
var person2 = new Person("Jenny", 24, "Doctor");

person1.sayName();  //"Miles"
person2.sayName();  //"Jenny"
 

 

构造函数与其他函数的唯一区别,就在于调用他们的方式不同。构造函数也是函数,只要通过new操作符来调用,那它就可以作为构造函数,如果不通过new,它跟普通函数没区别。

 

//当作构造函数使用
var person = new Person("Miles", 24, "Software Engineer");
person.sayName(); // "Miles"
//当作普通函数调用
Person("Jenny", 24, "Doctor");
window.sayName(); // "Jenny"
//在另一个对象的作用于中调用
var o = new Person();
Person.call(o, "Sean", 24, "Engineer");
o.sayName(); // "Sean"
 

当在全局作用域中调用一个函数时,this对象总是只想Global对象。

 

构造函数的缺点就是每个方法都要在每个实例上重新创建一遍。也就是上面的实例中每一个sayName不是同一个Function的实例

 

alert(person1.sayName() == person2.sayName()); // false

然后,创建两个完全同样任务的Function实例没有必要,所以可以通过把函数定义转移到构造函数外部来解决这个问题

 

function Person(name, age, job) {
    this.name = name;
    this.age = age;
    this.job = job;
    this.sayName = sayName;
}
function sayName() {
        alert(this.name);
}

 

个人博客同时更新中

 

分享到:
评论
4 楼 gyht0808 2011-03-10  
pouyang 写道
图像好邪恶。

我只是觉得比较性感,不是邪恶
3 楼 pouyang 2011-03-10  
图像好邪恶。
2 楼 gyht0808 2011-03-09  
superobin 写道
下一期莫不是prototype....

下一期已出,请关注本人博客,谢谢
1 楼 superobin 2011-03-09  
下一期莫不是prototype....

相关推荐

    javascript读书笔记

    JavaScript是Web开发中不可或缺的一部分,它是一种轻量级的解释型编程语言,广泛用于网页和网络应用。在学习JavaScript时,了解其基本概念至关重要。以下是一些关键知识点的详细说明: 1. 变量: 在JavaScript中,...

    javascript 高级程序设计 读书笔记(3)

    这篇读书笔记主要聚焦在第三部分,这部分通常涵盖了更高级的主题,如对象、原型、闭包以及模块化等。结合提供的"listutil.js"文件,我们可以深入探讨JavaScript中的实用工具函数和编程技巧。 首先,JavaScript的...

    JavaScript读书笔记

    该份文档于2004年整理,前段时间翻阅出来看,颇有收益,方便初学者的入门学习,也可以作为索引文件进行查阅、

    JavaScript_DOM_编程艺术读书笔记

    ### JavaScript DOM 编程艺术读书笔记关键知识点解析 #### 一、JavaScript简史与相关技术简介 - **XHTML(可扩展的超文本标记语言)**:这是一种更加严格、更加强大的HTML版本,旨在提高网页的可读性和可扩展性。 ...

    JavaScript学习笔记

    JavaScript学习笔记主要涵盖...通过阅读和理解这篇"JavaScript学习笔记",你可以逐步提升JavaScript技能,从而更好地开发网页和应用程序。记得实践是检验真理的唯一标准,多写代码,多解决问题,才能真正掌握这门语言。

    javascript学习笔记

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,广泛用于数据传输。 #### jQuery jQuery是一个快速、简洁的JavaScript库,简化了HTML文档遍历、...

    javascript 笔记 适合初学者 jquery chm 资料

    通过阅读笔记和深入学习jQuery CHM,初学者可以在短时间内提升自己的前端开发技能。 此外,实践是检验学习效果的最好方式。初学者应该尝试自己动手编写简单的JavaScript程序和使用jQuery实现动态效果,这样不仅可以...

    JavaScript笔记第一章—课程准备.pdf

    注释不会被浏览器执行,但可以被开发者阅读。 JavaScript可以通过不同的方式引入到HTML页面中,主要有三种方法:行内引入、外部引入和内部引入。行内引入是通过在HTML标签中直接写入JavaScript代码实现,如`('我要...

    javascript参考教程javascript高级教程javascript权威指南(第四版)

    《JavaScript参考教程.doc》和《JavaScript 权威指南(第四版).pdf》提供了两种不同的格式,供你在不同环境下阅读和打印。PDF格式适合在线阅读和保存,而DOC格式则可以方便地编辑和注释,适合个人学习笔记或教学...

    JAVASCRIPT从入门到精通读书笔记.pdf

    JAVASCRIPT从入门到精通读书笔记.pdf

    前端开发必备JavaScript(含源码课件笔记总结)

    课程中的源码分析部分,可能是对一些经典库或框架的源码解读,如jQuery、lodash等,通过阅读源码,可以深入理解JavaScript的高级技巧和优化手段,提升代码质量。 八、笔记总结 笔记部分是对整个学习过程的记录和...

    李炎恢JavaScript-pdf文档笔记

    《李炎恢JavaScript-pdf文档笔记》是一份详细记录了JavaScript编程语言基础知识至高级应用的教程,涵盖了从第一章到第三十四章的丰富内容。这个压缩包包含了一份PDF文档,旨在帮助学习者深入理解并掌握JavaScript的...

    JavaScript学习笔记-适合初学者

    本学习笔记专为初学者设计,旨在帮助新接触JavaScript的人快速掌握这门语言的核心概念和实用技巧。 首先,"JavaScript特效.chm"可能是一份关于JavaScript实现的各种网页特效的教程。这些特效可能包括图片轮播、下拉...

    javascript权威指南笔记

    JavaScript权威指南笔记是深入理解和掌握JavaScript这门编程语言的重要参考资料。这份笔记包含了作者在研读《JavaScript权威指南...通过阅读和理解这些笔记,你可以提升自己的JavaScript技能,更好地应对各种开发场景。

    JavaScript 精粹读书笔记(1,2)

    JavaScript是一门在Web开发中不可或缺的编程语言,它被用于创建交互式的网页内容和增强用户体验。虽然它广受欢迎,但同样伴随着许多争议和挑战。在《JavaScript 精粹》一书中,作者深入探讨了JavaScript的特性和最佳...

    Javascript 读书笔记索引贴

    基础篇 Javascript学习笔记1 数据类型 Javascript学习笔记2 函数 Javascript学习笔记3 作用域 Javascript学习笔记4 Eval函数 Javascript学习笔记5 类和对象 Javascript学习笔记6 prototype的提出 Javascript学习...

Global site tag (gtag.js) - Google Analytics