使用/调用 函数的时候, 前面加不加 对象或 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/ 欢迎 ...
随机推荐
- js-JavaScript高级程序设计学习笔记8
第十三章 事件 1.DOM2级事件规定的事件流包括三个阶段:事件捕获阶段.处于目标阶段.事件冒泡阶段. 2.大部分浏览器都会在捕获阶段出发对象上的事件,结果就是,有两个机会在目标对象上面操作事件. 3 ...
- 【BZOJ-4422】Cow Confinement 线段树 + 扫描线 + 差分 (优化DP)
4422: [Cerc2015]Cow Confinement Time Limit: 50 Sec Memory Limit: 512 MBSubmit: 61 Solved: 26[Submi ...
- 判断IE和Edge
//判断是否是IE浏览器,包括Edge浏览器function IEVersion() { var userAgent = navigator.userAgent; if (!!window.Activ ...
- 微信公众平台教程和SDK收集
教程收集: 1.Senparc(.net) http://www.cnblogs.com/szw/archive/2013/05/14/weixin-course-index.html 2.方倍工作室 ...
- CSS,font-family,好看常用的中文字体
例1(小米米官网):font-family: "Arial","Microsoft YaHei","黑体","宋体",s ...
- centos7 建立虚拟目录
一.安装mysql,直接用yum安装即可,mysql在centos7.0版本中被mariadb替代了. 命令: yum install mysql-server mysql 安装好了,选择修改mysq ...
- C++ 第二次课堂作业(反转链表)
题目链接: 传送门 GitHub链接: 传送门
- 一个叫<NameValuePair>的东西~~~
public String getInviteRelation(String phone){ String url = PropertiesUtil.getPropertyValue("HH ...
- ionic中获取坐标方法
ionic中获取坐标的方法 1.首相需要执行命令: cordova plugin add cordova-plugin-geolocation2.然后块级注入配置bower文件引入ngCordova ...
- Win7环境下Eclipse连接Hadoop2.2.0
准备: 确保hadoop2.2.0集群正常运行 1.eclipse中建立java工程,导入hadoop2.2.0相关jar包 2.在src根目录下拷入log4j.properties,通过log4j查 ...