定义本机JavaScript函数

时间:2014-07-15 22:49:45

标签: javascript

如何定义JavaScript函数?

例如:

string.doSomething(); // OR
element.getSomeInfo();

我找不到任何相关内容,但也许是因为它有一个我不知道的名字。

<小时/> 的修改

大约四年后,让我重新解释一下这个问题来解释我的意思。我不知道对象,但基本上我的问题是“如何将函数定义为对象的属性?”。我不一定区分扩展本机Javascript类(这是一个坏主意),只是用函数作为属性定义我自己的对象。

所以,回答我自己的问题,这些是不同的方法:

let foo = {
    bar: x=>1/x;
}

因此,例如,foo.bar(4)会返回.25。另一个:

function Rocket(speed){
    this.speed = speed;
    this.launch = ()=>{
        this.speed = 'super fast and upwards';
    }
}

现在可以定义let Apollo = new Rocket('standing still');并调用Apollo.launch();

我们还可以通过

扩展这些类(包括本地类)
Rocket.prototype.stop = function(){
    this.speed = 'Standing still';
}

然后使用Apollo.stop();调用它。

3 个答案:

答案 0 :(得分:2)

function Person(name) {
    this.name = name;
}

Person.prototype.sayHi = function() {
    return "Hi, I'm " + this.name;
}

var p = new Person("Jack");

p.sayHi() === "Hi, I'm Jack"  // evaluates to true

这是你正在寻找的吗?

答案 1 :(得分:1)

您可以将函数添加为对象的成员。

例如:

var foo = {};

foo.sayHello = function () {
  alert('hello');
}

foo.sayHello();

答案 2 :(得分:1)

添加到内置String对象(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/prototype

的原型中
String.prototype.doSomething = function(){
    console.log('bingo!');
}

var aaa = "testing123";

aaa.doSomething();

我不确定你的意思是什么元素。