gpt4 book ai didi

javascript - 在构造函数上定义方法

转载 作者:行者123 更新时间:2023-12-02 16:58:24 26 4
gpt4 key购买 nike

是否可以定义附加到构造函数而不是构造函数实例的方法?例如:

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

函数是一个可以拥有自己属性的对象(方法只是恰好是函数的属性)。因为这些属性不在原型(prototype)上,所以它们不会被赋予从 Person 构造函数创建的对象,但可以从 Person 构造函数对象本身获取。

这些本质上是其他语言所谓的静态方法,因为它们不与任何实例关联。

关于javascript - 在构造函数上定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25986108/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com