使用/调用 函数的时候, 前面加不加 对象或 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/ 欢迎 ...
随机推荐
- MySQL 语句遇到关键字
MySQL中,如果拿一个关键字做列名写在一个SQL语句中. 需要加 ``(1上面那个)包裹起来.不然会报解析字符串错误. select session from wireless limit 10; ...
- springMVC数据验证出现404错误解决办法
今天使用springMVC的数据验证的时候,看似很简单的东西,却有一个很大的陷阱:提交空表单的时候总是出现404错误,但是后台却不给你报任何错.遇到这个错误这个很苦恼,搞了几小时,今天记录并分享一下解 ...
- Java基础-关于session的详细解释
转自:http://hi.baidu.com/zbzbzb/item/65d73d2a4d07cfd40f37f900 一.术语session 在我的经验里,session这个词被滥用的程度大概仅次于 ...
- 【BZOJ-1014】火星人prefix Splay + 二分 + Hash
1014: [JSOI2008]火星人prefix Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 5852 Solved: 1871[Submit] ...
- ping: icmp open socket: Operation not permitted的解决办法
这个是root权限造成的,我们从 ls -l /bin/ping 可以看出 指向了root用户. 那么我们在使用时,有如下操作: 1.直接在前面加sudo sudo ping 192.168.199. ...
- Windows下安装paramiko
windows下python IDE我用的是pycharm 在pycharm下安装paramiko import paramiko后提示没有pycrypto这个模块 在pycharm下又安装不上pyc ...
- C#的委托和事件(delegate)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Dele ...
- bootstrap学习总结-02 网格布局
1 网格布局 Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列. <!DOCTYPE html> ...
- 理解Docker单机容器网络
在” 理解Docker单机容器网络 “一文中,还有一个Docker容器网络的功能尚未提及,那就是Docker容器的端口映射.即将容器的服务端口P’ 绑定到宿主机的端口P上,最终达到一种效果:外部程序通 ...
- gnuplot conditional plotting: plot col A:col B if col C == x
http://stackoverflow.com/questions/6564561/gnuplot-conditional-plotting-plot-col-acol-b-if-col-c-x H ...