使用/调用 函数的时候, 前面加不加 对象或 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.