javascript学习之【new操作符】

首先请大家思考这么一段代码,如下:

<script>
var jquery=function(){
     console.log(this);
};
jquery();
new jquery();
</script>

大家思考一下,结果是什么?执行这两句的this各自代表什么对象,是否相同?

先公布下测试结果,如下图

Window代表的是浏览器window对象。

j1代表的是通过构造函数jquery构造的一个对象。

是不是跟大家想的结果不一样呢?

一开始我推断出的结果也不正确,原本以为js是很简单的语言,越学越发现,js很有意思,也有一定的深度,绝对不是一门简单的语言。

废话不多说了,我们看下面一段解释,就能明白为何是这样了,大家也能更好的了解new关键字的作用。

函数如果以new的方式运行的话,函数会被当成一个构造函数,从而得到一个对象。也可以说,new是一个运算符,这个运算符的执行结果是一个对象。
如果不以new的方式执行函数的话,那就是一个普通函数。普通函数的返回值,就由函数决定了。  

时间: 2024-11-03 21:47:40

javascript学习之【new操作符】的相关文章

javascript学习------浏览器检测

Navigator对象:浏览器对象 该对象包含了浏览器的整体信息 Navigator对象的属性: appName:返回浏览器的名称 appVersion:返回浏览器的版本号 uerAgent:返回浏览器用于HTTP请求的用户代理头的值 appCodeName:返回浏览器的代码号 platform:返回运行浏览器的操作系统或硬件平台 IE中的Navigator属性: cookieEnabled:检测浏览器是否支持Cookie,如果支持返回TRUE,不支持返回FALSE systemLanguage

JavaScript学习笔记【2】表达式和运算符、语句、对象

笔记来自<JavaScript权威指南(第六版)> 包含的内容: 表达式和运算符 语句 对象 表达式和运算符 数组直接量中的列表逗号之间的元素可以省略,这时省略的空位会填充值undefined.元素列表末尾可以留下单个逗号,这时并不会创建一个新的值为undefined元素. 属性访问表达式,.identifier的写法只适用于要访问的属性名称是合法的标识符,并且需要知道要访问的属性的名字.如果属性名称是一个保留字或者包含空格和标识符,或是一个数字(对于数组来说),则必须使用方括号的写法.当属性

JavaScript学习总结(一)基础部分

转自:http://segmentfault.com/a/1190000000652749 基本概念 javascript是一门解释型的语言,浏览器充当解释器. js执行引擎并不是一行一行的执行,而是一段一段的分析执行. 延迟脚本 HTML4.0.1中定义了defer属性,它的用途是表明脚本在执行时不会影响页面的构造.也就是说,脚本会延迟到整个页面都解析完毕后再执行.因此,在<script>元素中设置defer属性,相当于告诉浏览器立即下载,但延迟执行.在XHTML文档中,要把defer属性设

悟透JavaScript——学习心得

编程世界的两个基本元素:数据和代码. 数据天生文静,欲在保持:代码天生活泼,欲在改变. 面向对象的思想首次把数据和代码结合成统一体,并以一个简单的对象概念呈现给编程者. JavaScript中简单数据只有undefined.null.boolean.number和string五种,复杂数据只有object一种.代码只体现为function一种形式. 解析简单数据: undefined代表了一切未知的事物,啥也没有,无法想象,代码也就更无法处理了.注:typeof(undefined)返回值也是u

JavaScript学习记录day2

JavaScript学习记录day2 学习 javascript JavaScript学习记录day2 1.1 数据类型 1.2 变量 1.1.1 Number 1.1.2 字符串 1.1.3 布尔值 1.1.4 比较运算符 1.1.5 null和undefined 1.1.6 数组 1. 数据类型和变量 1. 数据类型和变量 1.1 数据类型 1.1.1 Number JavaScript不区分整数和浮点数,统一用Number表示,以下都是合法的Number类型: 123; // 整数1230

Javascript学习总结-基本语法-(一)

1.1.javascript简介(引用百度百科解释) JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能. 在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成.因为Netscape与Sun合作,Netscape管理层希望它外观看

JavaScript学习记录day9-标准对象

JavaScript学习记录day9-标准对象 [TOC] 在JavaScript的世界里,一切都是对象. 但是某些对象还是和其他对象不太一样.为了区分对象的类型,我们用typeof操作符获取对象的类型,它总是返回一个字符串: typeof 123; // 'number' typeof NaN; // 'number' typeof 'str'; // 'string' typeof true; // 'boolean' typeof undefined; // 'undefined' typ

javascript学习路线图

史上最全的javascript学习路线图 JavaSctipt学习路线 完成整个课程大纲需要花上6~8周的时间,将学会完整的JavaScript语言(包括jQuery和一些HTML5).如果你没有时间在6个星期里完成所有的课程(确实比较有挑战性),尽量不要超过8个星期.花的时间越长,掌握和记忆各种知识点的难度就越大. 1-2周(简介,数据类型,表达式和操作符) 如果你还不是很了解HTML和CSS,完成Codecademy上的web基础任务. 阅读<JavaScript权威指南>或者<Ja

javascript学习

javascript 学习 title: Javascripttags: javascript,学习grammar_cjkRuby: true--- 定义变量 三种形式 var name; var name = "zhang san"; var name; name = "zhang san"; Javascript 的数据类型 6种数据类型 字符串单引号或双引号 var name = "zhang san"; var name = 'zhang

Javascript 学习笔记 2: 标识语句

可以在任何语句声明之前使用唯一标识(identifier)和冒号(:)用来标记该语句: identifier: statement 这样,你可以在程序的任何其他地方通过标识来使用这个语句.即使在语句内部也可以使用该语句的标识(例如:循环语句和条件语句).当在一个循环语句前添加一个标识,你可以在语句内部通过break 标识来退出当前循环,也可以通过continue标识来继续执行该语句.例如: mainloop: while(token != null) { // Code omitted... c