js的this与java的区别_JavaScirpt(JS)的this细究
一、js中function的不同形态
js中类和函数都要通过function关键字来构建。
1、js中当函数名大写时,一般是当作类来处理
function Foo(name, age) {
this.name = name;
this.age = age;
this.getName = function () {
console.log(this.name)
}
}
obj = new Foo('文州', 19); // 实例化一个对象
obj.getName(); // 输出:文州
2、js中函数名小写,当做函数来处理
function test() {
console.log(this);
}
// 等同于window.test,因此这里的this代指的是window
test(); // 输出:Window
3、自执行函数,同上面等价
自执行函数,同上面等价,this也是代指的window。
(function () {
console.log(this); // 输出:Window
})()
二、复合案例
1、类和函数结合案例
var name = '景女神';
function Foo(name, age) {
this.name = name;
this.age = age;
this.getName = function () {
console.log(this.name); // 文州
(function () {
console.log(this.name); // 景女神(打印的外部全局变量)
})()
}
}
obj = new Foo('文州', 19);
obj.getName(); // 文州 景女神
生成对象后,对象执行getName方法,此时this.name是输出的当前对象的name,因此是输出文州。随后再执行自执行函数,这里的this指代的是window对象,获取全局name变量,因此输出景女神。
2、让上例中自执行函数也打印对象的name
var name = '景女神';
function Foo(name, age) {
this.name = name;
this.age = age;
this.getName = function () {
console.log(this.name); // 文州
var that = this;
(function () {
console.log(that.name); // 文州(打印的外部全局变量)
})()
}
}
obj = new Foo('文州', 19);
obj.getName(); // 文州 文州
3、自动实例化案例
obj = {
name: '文州',
age: 19,
getName:function () {
console.log(this.name); // 文州
var that = this;
(function () {
console.log(that.name); // 文州
})()
}
}
obj.getName();
js的this与java的区别_JavaScirpt(JS)的this细究相关推荐
- java 怎么调用js代码_在Java中直接调用js代码
JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Java中直接调用js代码 不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: " ...
- 网页设计中JS与Java的区别
在各种网页制作技术论坛中,常常有人询问javascript与Java有什么区别,甚至有人误认为javascript就是Java.javascript与Java确实有一定的联系,但它们并不像我们想象的那 ...
- php和nodejs和java的区别_讨论PHP和Node.js开发之间有什么区别
在很长一段时刻内,决定在Node.js和PHP之间进行挑选是一件很费事的工作,但关于后端程序员来说,这一直很费事,但它从未影响过开发人员.可是工作很快就发生了改变,现在开发人员有必要挑选其中之一.No ...
- js与java的区别,JavaScript与Java的区别是什么呀?
JavaScript和Java看起来相似,其实这两者是两门不同的编程语言,他们没有任何的血缘关系.下面本篇文章就来给大家介绍一下JavaScript和Java的区别,希望对大家有所帮助. Java和J ...
- php和js哪个更像C语言,js和php存在着什么区别
js和php存在着什么区别 发布时间:2020-08-20 11:58:05 来源:亿速云 阅读:99 作者:小新 js和php存在着什么区别?这个问题可能是我们日常学习或工作经常见到的.希望通过这个 ...
- Luckysheet 导入导出 - Java后台处理和js前端实现
luckysheet 官方群:926131495 无图无真相,所以先看视频效果吧:https://b23.tv/IzhaTv.协同演示与历史记录 目前已经实现导出有三种方案.Java后台方式基于模板导 ...
- php java 哪个难,php和java的区别在哪里,那个更难一些
php和java的区别在哪里,那个更难一些以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! php和java的区别在哪里, ...
- JavaScript与java语法区别
网页中各种技术的作用 HTML 制作网页的结构 CSS 美化网页 JavaScript 让网页具有交互功能,在网页上运行脚本 JavaScript与java的区别 **特点** **Java** ** ...
- js中 函数和方法的区别:转载于黑泽君
js中 函数和方法的区别 在javascript中的解释为: 函数(function)是可以执行的javascript代码块,由javascript程序定义或javascript实现预定义.函数可以带 ...
最新文章
- python按行求和_Python第一篇:对3个Excel文件进行整合
- CodeForces - 375D Tree and Queries(树上启发式合并)
- Java 多线程(三) 线程的生命周期及优先级
- chrome鼠标手势_Chrome插件推荐——第一弹
- 改变css名称,样式命名规则?css
- 信息泄露案件_圆通回应运单信息泄露案件:系主动报案,涉4万余条敏感信息...
- leetcode 979. 在二叉树中分配硬币
- 转载:机器人工程师学习计划(YY硕)
- idea格式化java代码,设置属性自动换行
- php PDO连接mysql
- 笔记:Python Data Science Toolbox (Part 1)
- CVPR2020|3D目标检测算法推荐论文源码大盘点
- .nsh 怎么样运行_如何在Ubuntu 18.04上使用nsh运行安全的远程命令
- 前端白屏问题_首页白屏的引发的思考(一)
- 个人所得税计算以及个人所得税专项扣除相关信息
- DIV布局之道一:DIV块的水平并排、垂直并排
- MYSQL 文件目录,数据库的存储文件目录
- 华为电脑HUAWEI MateBook X 2021如何进BIOS设置
- 安全教育APP开发应该具备哪些功能
- 关键绩效指标法(Key Performance Indicator,KPI)