在构造函数上定义方法
Defining methods on constructor
是否可以定义一个附加到构造函数而不是构造函数实例的方法?例如:
function Person() {
//define a method
}
然后该方法可以在构造函数本身上访问,例如:
Person.method() // calls the defined method
并且该方法在构造函数的任何实例上都不可用:
var person = new Person();
person.method(); // undefined
是的,您可以这样定义它:
function Person() {
// constructor initialization code here
}
// define static method
Person.sayHi = function() {
console.log("hi");
}
var bob = new Person();
Person.sayHi(); // works any time even before creating a Person object
bob.sayHi(); // undefined method
函数是一个可以有自己属性的对象(方法只是一个恰好是函数的属性)。因为这些属性不在原型上,所以它们不会提供给从Person构造函数创建的对象,而是可以从Person构造器函数对象本身获得。
这些基本上是其他语言所称的静态方法,因为它们与任何实例都不关联。
相关文章:
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 用于检查数组中是否存在元素的javascript自定义方法
- Meteor-添加用户自定义字段的方法不起作用
- 骨干's Router.execute(callback,args,name)方法获取未定义的名称
- 在angularjs中创建自定义控件的推荐方法
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- React路由器错误-'无法调用方法'getRouteAtDepth'的未定义'
- 去掉多余的方法定义
- Javascript方法定义失败
- 属性定义是使用敲除时的方法定义
- Javascript:使用eclipse跳转到方法定义
- 使用以下两种方法定义的方法之间的差异
- 为什么函数属性定义在对象本身上(例如Function.name),而方法定义在Function.prototype上?
- ES6箭头函数和方法定义的区别
- 如果没有“函数”,这个对象方法定义如何工作?关键字
- 使用DOM方法定义文本框的动态宽度
- Javascript方法定义不一致
- 为什么实例方法定义在原型中,而实例字段定义在构造函数中?
- Reactjs最好的策略是为渲染方法定义一个变量
- 在JavaScript中:类中函数和方法定义之间的语法差异