Javascript中new的作用
关于js中new关键字的理解,先来看个例子:
像这样创建实例时使用new与不使用new有什么区别????
function ParasiticPerson(name, age, job) {
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.say = function () {
document.write("Hello,I'm " + this.name + "," + this.age + " years old,i'm a " + this.job+"。<br/>");
}
return o;
}
var person1 = new ParasiticPerson("wede", 25, "SoftWare"); //使用new
person1.say(); //Hello,I'm wede,25 years old,i'm a SoftWare。
var person4 = ParasiticPerson("jack", 35, "SuperStar"); //不使用new
person4.say(); //Hello,I'm jack,35 years old,i'm a SuperStar。
//答案1:构造函数与其他函数唯一的区别在于调用它们的方式不同。P146
//任何函数,只要通过new操作符来调用,那它就可以作为构造函数;而任何函数,如果不通过new操作符来调用,那它就跟普通函数没什么两样。
//但还是有疑问:既然使用和不使用new都可以,那为什么构造函数创建对象一定要使用new呢?
上面的答案并不能被真正理解,请看下面的回答:
答案2:揭晓答案前,先看下面的例子:
当不用new直接var a2=A1()时,其实只是相当于执行了一遍构造函数,这和执行普通函数一样,本例而言最后会返回false赋值给a2变量;而用new创建的是一个实例对象,这时候var a1=new A1()会忽略构造函数里的return 语句(这是语言的规则指定的,如果用new调用,就会返回这个new之后的构造函数的引用),所以,new之后会创建一个实例,并且这个实例是包含实例成员和原型成员的。
Javascript中new的作用的更多相关文章
- javascript中defer的作用
javascript中defer的作用 <script src="../CGI-bin/delscript.js" defer></script>中的def ...
- 在JavaScript中闭包的作用和简单的用法
在JavaScript中闭包的作用和简单的用法 一.闭包的简介 作用域链:在js中只有函数有作用域的概念,由于函数内能访问函数外部的数据,而函数外部不能访问函数内部的数据,由上述形成一种作用域访问的链 ...
- (转)javascript中return的作用
这里面的return含有一些细节知识: 例如:onClick='return add_onclick()'与 onClick='add_onclick()'的区别 JAVASCRIPT在事件中调用函数 ...
- javascript中return的作用
这里面的return含有一些细节知识: 例如:onClick='return add_onclick()'与 onClick='add_onclick()'的区别 JAVASCRIPT在事件中调用函数 ...
- javascript中的defer和async学习+javascript执行顺序
一.defer和async 我们常用的script标签,有两个和性能.js文件下载执行顺序相关的属性:defer和async defer的含义[摘自https://developer.mozilla. ...
- 关于 JavaScript 中一个小细节问题 (在控制台中直接 {Name:'王尼玛',Age:20} 对象报错问题)
在 Chrome 浏览器,大家可能遇到这样一个小问题. 随便输入一个 Object 对象 ,比如 {Name:'王尼玛',Age:20} ,将会报错.之前,也从来没去考虑过到底是为啥原因. 今天,刚 ...
- javascript中错误使用var造成undefined
在javascript中依据变量作用的范围不同分为局部变量和全局变量,直接定义的变量是全局变量,全局变量能够被全部的脚本訪问:在函数中定义的变量是局部变量,局部变量仅仅在函数内有效. 假设全局变量和局 ...
- javascript中bind函数的作用
javascript的bind的作用 <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- JavaScript中的函数-7---函数的作用,定义,调用
JavaScript中的函数 函数也是对象,并且是javascript中的一等公民,可以用来创建普通对象.对象只是属性和值的集合 学习目标 1.掌握函数的作用 2.掌握函数的定义 3.掌握函数的调用 ...
随机推荐
- maven打包遇到错误,Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test
对Pom文件进行配置(亲自尝试,已成功解决) <build> <plugins> <plugin> <groupId>org.apache.maven. ...
- Android 显示系统:OpenGL简介和Gralloc代码分析
一.OpenGL ES与EGL Android的GUI系统是基于OpenGL/EGL来实现的. 由于OpenGL是通用函数库,在不同平台系统上需要被“本土化”——把它与具体平台的窗口系统建立起关联,F ...
- centos6.5安装mysql(转载,亲测可用)
如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--Cen ...
- 类型TTreeView.items.add 与 TTreeView.items.addchild有何区别?(10分)
我看了书上例子,好象两者都可以实现treeview中的node 的构建. addchild是给当前的node建一个子node,它比当前node要向右缩进几格add建立同级的node,不缩进 aNode ...
- iOS 11适配
1.http://www.cocoachina.com/ios/20170915/20580.html 简书App适配iOS 11 2.http://www.jianshu.com/p/efb ...
- swift 第十四课 可视化view: @IBDesignable 、@IBInspectable
以前应objctiew-c 写项目的时候,就知道有这两个关键字,现在用swift了.用法稍作改变,基本用法还是一致的 虽然使用这个之后,有时候会报错的非常的莫名其妙----(其实还是自己技术不够牛…… ...
- Course1_Week1_ProgrammingHomeWork
Exercise 1: Pascal's Triangle The following pattern of numbers is called Pascal's triangle. 1 1 1 1 ...
- python、java、ruby、node等如何提取office文档中的内容?
我相信大家都有过这样的需求,把doc.ppt.excel.pdf.txt中的文本内容提取出来.提取出来的文本内容可用于文档内容的全文索引,文档的基本内容摘要等.在度娘上搜索“如何提取文档内容”,确实有 ...
- windows7-tomcat配置
1.下载 2.解压缩 3.配置环境变量 (1)计算机属性--高级系统配置--高级--环境变量--系统变量--新建 (2)CATALINA_HOME 如:C:\apache-tomcat-7.0.73 ...
- 【MOOC课程学习记录】程序设计与算法(一)C语言程序设计
课程结课了,把做的习题都记录一下,告诉自己多少学了点东西,也能给自己一点鼓励. ps:题目都在cxsjsxmooc.openjudge.cn上能看到,参考答案在差不多结课的时候也会在mooc上放出来. ...