java script 调用c_java script中的四种函数调用

news/2024/10/17 22:21:58/

df94c98329f1f280a0dcfd3e8978ac42.png

撰写此文源于最近在看Douglas Crockford的’JavaScript:The Good Parts’中文译本《Javascript语言精粹》时,发现一些自己不知道或者没有一下子理解的东西,拿出来细细研究并记录一下。

函数被作为很重要的一部分在书中做了详细的介绍和举例。感觉函数的四种调用方式和在不同调用方式上’this’绑定的不同是个重点也是难点。欢迎大家一起研究。

方法调用模式:

调用形式:通过’.'点表达式或[subscript]下标表达式调用一个对象中的方法。this 绑定:this被绑定到被调用方法所属的对象上。例子:

帮助

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24//创建myObject对象。它有一个value属性和一个increment方法。

//increment方法接收一个可选参数。如果参数不是数字,那么默认使用数字1。

var g='global';

var myObject={

value:0,

increment:function(inc){

document.writeln(this.g);

this.value+=typeof inc==='number'?inc:1;

//在方法被调用时this被绑定为myObject对象。

}

};

document.writeln(this.g);//global

//打印出全局变量g的值,说明this被绑定在全局对象上。

myObject.increment();

//在这里increment方法才被调用,this才被绑定到myObject对象,

这是特有“超级”迟绑定(very late binding)。

//这时打印出的this.g为undefined,因为myObject中没有g这个属性,

可以看出这时this被绑定到了myObject对象上。

document.writeln(myObject.value);//1


http://www.ppmy.cn/news/248343.html

相关文章

java日期类型_Java 基础【12】 日期类型

java api中日期类型的继承关系 java.lang.Object --java.util.Date --java.sql.Date --java.sql.Time --java.sql.Timestamp 1. java.util.Date表示特定的瞬间,精确到了毫秒 两个构造函数(别的过期了的我就不说了) Date() Date(long date) 主要方法》》 boolean a…

未来计算机一种新兴的计算机类型,酷毙了!10款神奇的未来计算机

原标题:酷毙了!10款神奇的未来计算机 未来计算机的发展趋势怎样?你有想过未来的计算机会有什么新功能?下面奇艺网带来10款神奇的未来计算机,每一款都酷毙了,只想说来十台试试! 1)投影触摸笔记本…

Java即时编译器原理解析及实践

跟其他常见的编程语言不同,Java将编译过程分成了两个部分,这就对性能带来了一定的影响。而即时(Just In Time, JIT)编译器能够提高Java程序的运行速度。 本文会先解析一下即时编译器的原理,然后再分享一些在美团实践的…

计算机视觉(十六):目标检测概述

1 什么是目标检测 目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置。 例子:确定某张给定图像中是否存在给定类别(比如人、车、自行车、狗和猫&…

Java已死?重庆java培训学校

一、什么情况下会发生栈内存溢出? 1、栈是线程私有的,栈的生命周期和线程一样,每个方法在执行的时候就会创建一个栈帧,它包含局部变量表、操作数栈、动态链接、方法出口等信息,局部变量表又包括基本数据类型和对象的引…

java api model_Java编译器API简介

今天给大家分享的是Java编译器API简介,文章部分内容摘自【优锐课】学习笔记。 Java编译器API Java编译器API是Java模块(称为java.compiler)的一部分。该模块包括语言模型和注释处理,以及编译器API。它定义了Java编程语言和编译器工具的类型和模型声明&am…

selenium(java)教程学习(附带全部代码)

java web自动化 javaseleniumtestngJenkins 想要使用Selenium实现web自动化测试,主要需要的东西。 1.需要安装jdk,配置jdk,(selenium3需要jdk1.8以上) 2. 安装eclipse(编写工具) 3. 安装webdrve…

台式计算机和便携式计算机是替代品吗,iPad能否替代笔记本电脑?这结果我一万个不服!...

近年来,随着平板电脑的不断发展,有一个长期存在的问题,平板(文中主要指iPad)是否可以替代传统笔记本电脑? 平板电脑和笔记本电脑如今可以做很多事情,最好的平板电脑甚至比一些笔记本电脑功能更强大,但它是一…