一、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细究相关推荐

  1. java 怎么调用js代码_在Java中直接调用js代码

    JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Java中直接调用js代码 不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: " ...

  2. 网页设计中JS与Java的区别

    在各种网页制作技术论坛中,常常有人询问javascript与Java有什么区别,甚至有人误认为javascript就是Java.javascript与Java确实有一定的联系,但它们并不像我们想象的那 ...

  3. php和nodejs和java的区别_讨论PHP和Node.js开发之间有什么区别

    在很长一段时刻内,决定在Node.js和PHP之间进行挑选是一件很费事的工作,但关于后端程序员来说,这一直很费事,但它从未影响过开发人员.可是工作很快就发生了改变,现在开发人员有必要挑选其中之一.No ...

  4. js与java的区别,JavaScript与Java的区别是什么呀?

    JavaScript和Java看起来相似,其实这两者是两门不同的编程语言,他们没有任何的血缘关系.下面本篇文章就来给大家介绍一下JavaScript和Java的区别,希望对大家有所帮助. Java和J ...

  5. php和js哪个更像C语言,js和php存在着什么区别

    js和php存在着什么区别 发布时间:2020-08-20 11:58:05 来源:亿速云 阅读:99 作者:小新 js和php存在着什么区别?这个问题可能是我们日常学习或工作经常见到的.希望通过这个 ...

  6. Luckysheet 导入导出 - Java后台处理和js前端实现

    luckysheet 官方群:926131495 无图无真相,所以先看视频效果吧:https://b23.tv/IzhaTv.协同演示与历史记录 目前已经实现导出有三种方案.Java后台方式基于模板导 ...

  7. php java 哪个难,php和java的区别在哪里,那个更难一些

    php和java的区别在哪里,那个更难一些以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! php和java的区别在哪里, ...

  8. JavaScript与java语法区别

    网页中各种技术的作用 HTML 制作网页的结构 CSS 美化网页 JavaScript 让网页具有交互功能,在网页上运行脚本 JavaScript与java的区别 **特点** **Java** ** ...

  9. js中 函数和方法的区别:转载于黑泽君

    js中 函数和方法的区别 在javascript中的解释为: 函数(function)是可以执行的javascript代码块,由javascript程序定义或javascript实现预定义.函数可以带 ...

最新文章

  1. python按行求和_Python第一篇:对3个Excel文件进行整合
  2. CodeForces - 375D Tree and Queries(树上启发式合并)
  3. Java 多线程(三) 线程的生命周期及优先级
  4. chrome鼠标手势_Chrome插件推荐——第一弹
  5. 改变css名称,样式命名规则?css
  6. 信息泄露案件_圆通回应运单信息泄露案件:系主动报案,涉4万余条敏感信息...
  7. leetcode 979. 在二叉树中分配硬币
  8. 转载:机器人工程师学习计划(YY硕)
  9. idea格式化java代码,设置属性自动换行
  10. php PDO连接mysql
  11. 笔记:Python Data Science Toolbox (Part 1)
  12. CVPR2020|3D目标检测算法推荐论文源码大盘点
  13. .nsh 怎么样运行_如何在Ubuntu 18.04上使用nsh运行安全的远程命令
  14. 前端白屏问题_首页白屏的引发的思考(一)
  15. 个人所得税计算以及个人所得税专项扣除相关信息
  16. DIV布局之道一:DIV块的水平并排、垂直并排
  17. MYSQL 文件目录,数据库的存储文件目录
  18. 华为电脑HUAWEI MateBook X 2021如何进BIOS设置
  19. 安全教育APP开发应该具备哪些功能
  20. 关键绩效指标法(Key Performance Indicator,KPI)

热门文章

  1. Druid如何自动根据URL自动识别DriverClass的
  2. 客观地认识程序员心中的恐惧
  3. Python编程:制作电子相册
  4. TiDB适用和不适用场景
  5. mysql数据导入导出方法总结
  6. 数据库中查询记录时是否每次只能使用一个索引?
  7. 深入php-fpm的两种进程管理模式详解
  8. Redis快的原因:内存操作 单线程没有切换开销 多路复用IO
  9. 反思赚钱:一定要动脑子 一定找发财点
  10. Mysql的timestamp与datetime