使用/调用 函数的时候, 前面加不加 对象或 this?
这个问题, 其实没有细想:
应该是这样的: (想明白了, 就会少很多困惑, 会对语言的把握 会 更深入更透彻)
任何一门 语言, (如果你自己去设计一门语言...). 都要规定 一些 "关键字": 关键字是由 /供 语言的 编译器 和 parser来识别的. 它不是 任何一种数据类型. 如C中的 for, 它不是int, bool, string , struct, enum, union中的任何一种!!
任何一门语言, 除了传统的函数, 数据类型外, 还得有 "操作符, 也就运算符" operator. 如 加减乘除 + - * /, = , ==, != .... 而这些operator不仅仅是一些 数学符合, 也有可能是一下 单词: 如 : typeof, sizeof, 比如
在js中, var name="Tome", alert(typeof name); 这里的 typeof就是 操作符, 运算符, 叫单目 运算符...
重点: 函数, 凡是 对于面向对象:oriented objects 的语言, 里面的函数 有两种类型:
- 全局的: 在任何地方都可以使用的, 跟任何对象都无关的, 这样的全局函数, 使用时, 直接写函数名就行了, 前面不用加任何东西.
- 属于对象的函数: 这个函数,,要使用, 得有一个对象, 用一个对象来调用它. 因为是属于对象的, 没有对象就无法引用. 要么用显式的对象, 要么用一个隐含的对象this.
第一, 显式的对象:
var person={"name": "Tom", "age": 10, "isMale": true,....}. 要引用其中的成员, 则: person.name
class Person{
private:
string name;
int age;
...;
public:
// 构造函数
Person(string name, int age){
this.name = name;
this.age = age;
getName(){
return name; //在类的内部, 可以直接引用成员名称,只要不跟参数同名就行
}
}; // class Person 仅仅只是一个变量声明,如int i; 一样的, 所以要加分号;
Person p("Tom", 10);
// 这个时候要获取p 这个人的名字, 就得用 类 对象的函数. 由于getName是属于对象的, 所以它前面就必须要有对象, 这里用显式的对象:
printf("person 'p' name: %s", p.getName()); // 就不能直接写成: printf("person 'p' name: %s", getName());
第二, 隐含的对象:
jquery中: $("table.navi tr").click(function(index, event){
alert("current tr ' index is:" + index);
// 这里就要注意了, 这个css函数 /方法 前面就必须用$(this)了, 表示这个css是一个jQuery对象的方法,不是全局函数,
// 要通过一个对象才能来 调用它.如果不加$(this)就会被当成一个全局变量来解析,自然就会出错了!
alert("current tr's background is: " + $(this).css("background-color"));
});
orient: ori=rise(升起的) -ent 名词/形容词后缀. 太阳升起的地方.= 东方.
orient: n. 东方, 东方诸国; adj. 东方的 vt. 使熟悉/使适应, 确定方向/面向...
they love paintings from the orient.
i need some time to orient my thinking.
the fresher took some days to orient himself.
使用/调用 函数的时候, 前面加不加 对象或 this?的更多相关文章
- Python调用函数加括号和不加括号的区别
Python调用函数加括号和不加括号的区别 # -*- coding: utf-8 -*- #!/usr/bin/env python # @Time : 2018/7/3 10:03 # @Desc ...
- setTimeOut(),和setInterVal()调用函数加不加括号!!!
直接在ready中调用其他方法,会提示缺少对象的错误,解决方法如下: 方法1. 应用jQuery的扩展可以解决这个问题. $(document).ready(function(){ $.extend( ...
- JS调用函数时候加括号与只写函数名字的区别 fn与fn()的区别
经常见插件里面函数调用的时候只写个函数名字,不写函数参数,甚至连括号也不写,比如说: <!DOCTYPE html> <html> <head> <meta ...
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”
首先,作为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用. 通常,在模块的头文件中对本模块提供给其它模块 ...
- C#中引用类型的变量做为参数在方法调用时加不加 ref 关键字的不同之处
一直以为对于引用类型做为参数在方法调用时加不加 ref 关键字是没有区别的.但是今天一调试踪了一下变量内存情况才发现大有不同. 直接上代码,结论是:以下代码是使用了 ref 关键字的版本.它输出1 ...
- Shell函数:Shell函数返回值、删除函数、在终端调用函数
函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: f ...
- Shell函数返回值、删除函数、在终端调用函数
Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () { list of commands [ return value ] ...
- 【Shell脚本学习22】Shell 函数:Shell函数返回值、删除函数、在终端调用函数
函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: f ...
- 编译程序加不加 -lpthread 的区别【转】
转自:http://www.cnblogs.com/Swartz/articles/3939382.html 作者:Lokki 出处:http://www.cnblogs.com/Swartz/ 欢迎 ...
随机推荐
- Shiro-认证
认证流程: 1. 获取当前的 Subject. 调用 SecurityUtils.getSubject();2. 测试当前的用户是否已经被认证. 即是否已经登录. 调用 Subject 的 isAut ...
- js-JavaScript高级程序设计学习笔记9
依然第十三章 事件 1.页面上的所有元素都支持鼠标事件,除了mouseenter和mouseleave,所有鼠标事件都会冒泡. 2.修改键:shift.ctrl.alt.meta.四个属性表示修改键的 ...
- 【BZOJ-3262】陌上花开 CDQ分治(3维偏序)
3262: 陌上花开 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 1439 Solved: 648[Submit][Status][Discuss ...
- 【BZOJ-4690】Never Wait For Weights 带权并查集
4690: Never Wait for Weights Time Limit: 15 Sec Memory Limit: 256 MBSubmit: 88 Solved: 41[Submit][ ...
- java里面时间差比较
currentTime.before(this.getLastActivateTime(time))//返回true 或者false public Date getLastActivateTime(t ...
- GoJS使用
1. 先学习官网的这篇Get Started with GoJS教程入门,了解GoJS基础知识: 2. 浏览GoJS各个示例(Samples.Intro),找到契合自己业务需要的某个或者某几个例子,然 ...
- infobright 导入 导出
SET SQL_LOG_BIN = 0;select * into outfile 'mydata.cvs' fields terminated by ',' from table1;load dat ...
- 看了汤姆大叔的“你真懂JavaScript吗?”的一些感慨
看了汤姆大叔的“你真懂JavaScript吗?”,里面有5道题目,我都一一作了,然后在chrome的控制台里面运行了一遍,虽然只错了一道,但还是细细读了下答案,在此总结一下,看看是否对大家对这些Jav ...
- 增量式PID简单翻板角度控制
1.研究背景 随着电子技术.信息技术和自动控制理论技术的完善与发展,近来微型处理器在控制方面的应用也越来越多.随之逐渐渗透到我们生活的各个领域.如导弹导航装置,飞机上仪表的控制,网络通讯与数据传输,工 ...
- js002-在HTML中使用JavaScript
js002-在HTML中使用JavaScript 2.1 <script>元素 定义了以下6个属性 async: 可选.表示应该立即下载脚本,但不妨碍页面中的 ...