可以在对象原型上声明Javascript函数,如下所示:
<object name>.prototype.<variable name>=function(){
//
//
}
Run Code Online (Sandbox Code Playgroud)
它如何与以下声明不同?
<object name>.<variable name>=function(){
//
//
}
Run Code Online (Sandbox Code Playgroud)
原型函数与javascript中的普通函数有何不同?
Igo*_*aka 16
原型函数是实例函数,而普通函数是"静态"函数.在类的原型上声明的函数将在该类的所有实例上可用.
var MyClass = function(){
};
MyClass.staticFunction = function(){alert("static");};
MyClass.prototype.protoFunction = function(){alert("instance");};
MyClass.staticFunction(); //OK
MyClass.protoFunction (); //not OK
var myInstance = new MyClass ();
myInstance.staticFunction(); //not OK
myInstance.protoFunction (); //OK
Run Code Online (Sandbox Code Playgroud)
在基础对象的原型上声明的函数由该对象类型的所有实例继承.
例如..
String.prototype.foo = function () {
return 'bar';
};
Run Code Online (Sandbox Code Playgroud)
现在,每个字符串都将具有可用的函数foo().
'test'.foo(); // returns 'bar'
在这里阅读有关基于原型的继承的更多信息
| 归档时间: |
|
| 查看次数: |
1583 次 |
| 最近记录: |