以java程序员的视角学习javascript的函数定义

10月 8, 2014 |

javascript中只有对象(Object),没有类的概念。function关键字只是定义函数对象的一个变种形式。默认通过function关键字产生的对象会作为window对象的一个属性存在。当我们使用new 关键字作用于某个函数对象,将产生一个新的对象,可以将这个对象理解成一个新的范围,这样在这个新的范围内,this不再指向默认的window 对象,而是我们新产生的对象。

一个实例胜过千万句空话,让我们用事实说话。

实例1-类似java成员函数的实现:

输出为:

[javacoder.cn]? B()

实例2-类似java的共有静态函数的实现

输出为:

function Person(name) {
this.name = name ;
this.B = function() {
console.log(this + "? B()");
}
//重写toString,便于标识
this.toString=function() {
return "[" + this.name + "]";
}
}?? C()

Function对象的toString()方法会将整个函数的定义输出。

实例3-类似java成员函数的另一种实现

输出结果为:

[javacoder.cn]? D()

实例4-动态给对象添加函数,java没有的功能

输出为:

[javacoder.cn] E()

实例5-类似java静态私有方法的实现。

输出为:

[object Window], A() ,js
[object Object]B()

我也是js初学者,欢迎交流

Posted in: WEB practise

Comments are closed.