JavaScript语言精粹,JavaScript语言精粹

如何理解JavaScript语言精粹中的函数化模式

1.方法调用模式

网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了丁青免费建站欢迎大家使用!

当一个函数被保存为对象的一个属性时,我们称之为一个方法。当一个方法被调用时,this被绑定到该对象。

[javascript] view plain copy

function A() {

this.x = 1; //定义a.x

this.b = function () { //定义a.b

this.helper = function () { //定义a.helper

console.log(this); //4.console.log(a)

}

this.helper(); //3.调用a.helper(); 此时的helper,是一个方法,所以helper中的this指向a

}

this.b(); //2.调用a.b(),此时的b是a的一个属性,所以是一个方法,所以b中的this指向a

}

var a = new A(); //1.创建a对象

输出: A {x:1}

2.函数调用模式

当一个函数不是一个对象的属性时,就是被当做一个函数来调用的。此时this被绑定到全局对象。

[javascript] view plain copy

function A() {

this.x = 1;

this.b = function () {

var helper = function () {

console.log(this);

}

helper(); //此时的helper不是任何对象的属性,只是一个函数

}

this.b();

}

var a = new A();

输出: Window {external: Object, ......}

3.构造器调用模式

用new关键字,此时this被绑定到创建出来的新对象上。

[javascript] view plain copy

function A() {

this.x = 1;

this.b = function () {

this.helper = function () { //定义aa.helper

console.log(this); //4.console.log(aa)

}

this.helper(); //3.调用aa.helper(); 此时的helper,是一个方法,所以helper中的this指向aa

}

var aa = new this.b(); //2.创建一个新的对象aa,所以b()中的this指向aa

}

var a = new A(); //1.创建a对象

输出: A.b {} ;

另外,这里举Splunk吉祥物pony的例子来说一说new操作符做的事情:

[javascript] view plain copy

function Pony(color) {

// var this = Object.create(Pony.prototype);

// instance members

this.color = color;

// private members

var age = 50;

// private methods

function secreteMethod() {

console.log('Secret!');

}

// make private member visible due to closure

this.getAge = function() {

console.log('My age is : ' + age);

};

// return this;

}

// methods

Pony.prototype.tellColor = function() {

console.log('I am ' + this.color);

};

// static attributes

Pony.type = 'horse';

var pony = new Pony('white');

pony.tellColor();

pony.getAge();

what happens?

[javascript] view plain copy

var pony = new Pony('white');

// equals

var pony = {};

pony.__proto__ = Pony.prototype;

Pony.call(pony, 'white');

4.apply调用模式

js是一门函数式的面向对象编程语言,所以函数可以有方法。apply(or call)方法允许我们构建一个参数数组传递给调用函数,也允许我们选择this的值。它接受两个参数,第一个是要绑定给this的值,第二个是一个参数数组。

[javascript] view plain copy

function People (name) {

this.name = name;

}

People.prototype.greet = function () {

console.log('hi,'+this.name);

};

var dog = {

name: 'hobbo'

};

People.prototype.greet.apply(dog);

输出: hi,hobbo

总结:

this默认指向global object

当函数作为对象的属性被调用时,函数中的this指向那个对象

当使用new操作符来调用函数时,函数中的this指向新创建的对象

当使用apply或者call来调用函数时,this指向被传给call活apply的第一个参数。如果第一个参数是空或者不是一个对象,this指向global object

《JavaScript语言精粹修订版》epub下载在线阅读,求百度网盘云资源

《JavaScript语言精粹》(Douglas Crockford)电子书网盘下载免费在线阅读

资源链接:

链接:

提取码:y0jn  

书名:JavaScript语言精粹

作者:Douglas Crockford

译者:赵泽欣

豆瓣评分:9.1

出版社:电子工业出版社

出版年份:2009-4

页数:155

内容简介:

本书通过对JavaScript语言的分析,甄别出好的和坏的特性,从而提取出相对这门语言的整体而言具有更好的可靠性、可读性和可维护性的JavaScript的子集,以便你能用它创建真正可扩展的和高效的代码。

雅虎资深JavaScript架构师Douglas Crockford倾力之作。

向读者介绍如何运用JavaScript创建真正可扩展的和高效的代码。

作者简介:

Douglas Crockford是一名来自Yahoo!的资深JavaScript架构师,以创造和维护JSON (JavaScriptObject Notation) 格式而为大家所熟知。他定期在各类会议上发表有关高级JavaScript的主题演讲。

javascript要学多久?

从0基础到勉强能用,只求入门的话2-3个月绰绰有余,但是要精通的话肯定是需要花更多时间日积月累了,选择培训的话是要参与一些项目联练习的,因为JavaScript很多技巧不通过项目这样比较大的历练是用不上的。千锋官网每日更新最新软件开发基础知识内容,巩固日常学习中的基础技能。更有免费的软件开发视频教程帮助学员快速学习。 千锋教育就有线上免费的软件开发公开课,。

Web前端培训多长时间,只能说简单入门在五到六个月,真正要达到精通级别的话,需要天赋跟经验的积累。正所谓,一入前端深似海,从此回首无边界。活到老,学到老。只要步入了前端开发你就会发现,前端真的是要一直不停的学,不停的学。千锋教育集团目前已与国内4000多家企业建立人才输送合作,与500多所大学建立实训就业合作,每年为各大企业输送上万名移动开发工程师,每年有数十万名学员受益于千锋教育组织的技术研讨会、技术培训课、网络公开课及免费教学视频。

《JavaScript语言精粹修订版》pdf下载在线阅读全文,求百度网盘云资源

《JavaScript语言精粹修订版》百度网盘pdf最新全集下载:

链接:

?pwd=e2k5 提取码:e2k5

简介:JavaScript 曾是“世界上误解的语言”,因为它担负太多的特性,包括糟糕的交互和失败的设计,但随着Ajax 的到来,JavaScript“从受误解的编程语言演变为非常流行的语言”,这除了幸运之外,也证明了它其实是一门优秀的语言。Douglas Crockford 在本书中剥开了JavaScript 沾污的外衣,抽离出一个具有更好可靠性、可读性和可维护性的JavaScript 子集,让你看到一门优雅的、轻量级的和非常富有表现力的语言。作者从语法、对象、函数、继承、数组、正则表达式、方法、样式和优美的特性这9 个方面来呈现这门语言真正的精华部分,通过它们完全可以构建出优雅高效的代码。作者还通过附录列出了这门语言的毒瘤和糟粕部分,且告诉你如何避免它们。最后还介绍了JSLint,通过它的检验,能有效地保障我们的代码品质。  

关于JavaScript 的好书有哪些

第一本:《JavaScript权威指南》,经典级教材,很厚一本,俗称“犀牛书”,囊括了JS几乎所有的基础知识,新版本还加入了最新的技术内容,适合初学者,有经验的开发者也常常作为随手翻阅的语法书。

第二本:《JavaScript语言精粹》,俗称“蝴蝶书”,是介绍JavaScript语言本质一本书,教你全面了解这门语言的糟粕部分,构建出优雅高效的代码。

第三本:《JavaScript高级程序设计》,这本是我强烈推荐的,是非常经典的JavaScript畅销书,内容全面深入、贴近实战,详细讲解了JavaScript语言的核心,又展示了现有规范及实现以及为开发Web应用提供的各种支持和特性。


本文标题:JavaScript语言精粹,JavaScript语言精粹
文章源于:http://hbruida.cn/article/dsohhoe.html