JavaScript 使用new关键字调用函数
使用new关键字调用函数
test.js
代码如下
function Person(name, age, obj) {
var o = new Object();
o.name = name;
o.age=age;
o.obj=obj;
o.sayName=function(){
alert(this.name);
}
// return o;
//
this.sayName=function(){
alert(name);
}
console.log(this);
}
var friend=new Person("nike", 29, "software engineer");
console.log(friend);
friend.sayName();
study.html
代码如下
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="en">
</head>
<body>
<script src="test.js"></script>
</body>
</html>
运行结果
修改test.js代码
function Person(name, age, obj) {
var o = new Object();
o.name = name;
o.age=age;
o.obj=obj;
o.sayName=function(){
alert(this.name);
}
console.log(this);
return o;
}
var friend=new Person("nike", 29, "software engineer");
console.log(friend);
friend.sayName();
控制台输出
扩展
修改test.js代码
定义变量,存放匿名函数的地址,然后使用该变量来调用函数
var Person = function(name, age, obj) {
var o = new Object();
o.name = name;
o.age=age;
o.obj=obj;
o.sayName=function(){
alert(this.name);
}
console.log(this);
return o;
}
var friend=new Person("nike", 29, "software engineer");
console.log(friend);
friend.sayName();
控制台输出
同上一步结果
结论
1、new js函数名称(参数列表),会把对应的函数当做构造函数来使用,如果函数未定义返回值,默认的会返回通过构造函数(被调用函数)构造的对象实例;如果函数定义了返回值,则返回定义的返回值。
2、使用new js函数名称(参数列表)调用函数,函数中的 this 代表了新构造的对象实例。
3、可以直接通过定义变量,存放匿名函数的地址,然后使用该变量来调用函数
JavaScript 使用new关键字调用函数的更多相关文章
- Js 使用new关键字调用函数和直接调用函数的区别
最近开始学习js,在看到书上的一个例子时,引发了我的一系列思考: 书上例子: function Person(name,age,job){ var o =new Object(); o.name=na ...
- 【javaScript基础】马上调用函数表达式
在javaScript中,每一个函数被调用时,都会创建一个新的运行上下文.由于在一个函数里面定义的变量和函数仅仅能在里面訪问.在外面是不行的.上下文提供了一种非常easy的方法来创建私有性. //ma ...
- 【JavaScript】关于 setInterval() 调用函数方法的一次实验
实验主题: setInterval() 方法是 JS 中比较常用的一个方法.setInterval() 方法可以按照指定的周期 ( 毫秒 ) 来调用函数方法或计算表达式. setInterval() ...
- Javascript中的定时调用函数setInterval()和setTimeout()
首先介绍这两个函数 一.setInterval() 按照指定的周期来调用函数或表达式,执行多次.(时间单位:ms) timer = setInterval("content =documen ...
- [转]JavaScript通过参数动态调用函数——js中eval实现反射
以下文章出自 http://blog.rongzhiwang.com/king/archive/2012/08/13/javascriptjseval.aspx 今天碰到人问这样一个问题 ...
- JavaScript指定周期来调用函数setTimeout和setInterval
setTimeout方法:setTimeout setInterval方法:setInterval
- 深入解析Javascript中this关键字的使用
深入解析Javascript中面向对象编程中的this关键字 在Javascript中this关键字代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.比如: function TestFun ...
- JavaScript中以构造函数的方式调用函数
转自:http://www.cnblogs.com/Saints/p/6012188.html 构造器函数(Constructor functions)的定义和任何其它函数一样,我们可以使用函数声明. ...
- 理解JavaScript的立即调用函数表达式(IIFE)
首先这是js的一种函数调用写法,叫立即执行函数表达式(IIFE,即immediately-invoked function expression).顾名思义IIFE可以让你的函数立即得到执行(废话). ...
随机推荐
- 百度大脑UNIT3.0详解之数据生产工具DataKit
在智能对话项目搭建的过程中,高效筛选.处理对话日志并将其转化为新的训练数据,是对话系统效果持续提升的重要环节,也是当前开发者面临的难题之一.为此百度大脑UNIT推出学习反馈闭环机制,提供数据获取.辅助 ...
- Distributed Systems: When you should build them, and how to scale. A step-by-step guide.
原文链接 https://medium.com/free-code-camp/distributed-systems-when-you-should-build-them-and-how-to-sca ...
- 一个类实现Java截屏并保存到指定文件夹
不知小伙伴们有没有遇到过使用java来截屏的需求,截屏后保存到指定的目录,在桌面上没有任何体现,完全不知道已经被截屏了.至于截屏后怎么做,可能有的老铁只是好奇想知道某人在干啥?也有的老铁可能想进行文字 ...
- mysql-两种方式安装
一.数据库版本 MySQL 常见版本 MySQL Community Server 社区版本,开源免费,但不提供官方技术支持. MySQL Enterprise Edition 企业版本,需付费,可以 ...
- unity3D开发环境搭建
前言 本文记录unity3D开发环境的搭建 unity安装 unity有中文官网(https://unity.cn/),很贴心,ide工具我们选择下载安装中国区增强版,下载地址:https://uni ...
- JavaScript 自定义html元素鼠标右键菜单
自定义html元素鼠标右键菜单 实现思路 在触发contextmenu事件时,取消默认行为(也就是阻止浏览器显示自带的菜单),获取右键事件对象,来确定鼠标的点击位置,作为显示菜单的left和top值 ...
- ionic项目使用Google FCM插件和Google maps插件打包android报错冲突问题
这段时间在调FCM推送服务的插件 ,原本以为去年调通过,应该很容易,没想到还是出问题了.现将问题及解决方法整理如下,仅供参考: 先看打包报错截图: 详细报错信息:Please fix ...
- HTML+CSS基础知识点简要汇总(思维导图)
- [转]smtplib.SMTPDataError: (554, b'DT:SPM的异常
本文转自:https://blog.csdn.net/mapeifan/article/details/82428493 python 发送邮件,出现如下异常 异常如下: smtplib.SMTPDa ...
- Maven简介与使用
Maven介绍 Maven是项目管理工具,对软件项目提供构建与依赖管理 Mavan是Apache下的Java开源项目 Mavan为Java项目提供了统一的管理方式,已成为业界标准 Maven核心特性 ...