如何调用函数并使用句点表示法传递变量

时间:2015-06-12 18:05:04

标签: javascript function prototype

我之前看过这个,但我不确定如何实际实现它。如何使用此语法foo.function()传递函数变量,将foo作为输入传递。 理想情况下,我想让它像这样工作

var foo = 'some string';

var myFunction = function(input){
    console.log(input);
}
foo.myFunction();

//should log 'some string'

我认为这可以从jquery这样的javascript框架中实现somevar.myFunction()

我也知道我可以扩展一个预定义的对象,但我希望能够在提供任何var的情况下运行此函数。

2 个答案:

答案 0 :(得分:1)

您要找的是Object.prototype。最终,任何对象都链接到对象的prototype chain。换句话说,只要一个对象没有属性,它就会检查它的原型。反过来原型是一个对象,依此类推。

示例:

Object.prototype.foo = function () {
    return "bar";
}

console.log("a string is an object".foo());

但是,在你真正知道自己在做什么之前不要开始使用它,因为扩展原生对象的原型是not necessarily good practice

答案 1 :(得分:0)

我不确定你的意思。但是给出了JavaScript中的示例自定义类型:

function SomeType() {
    this.someVar = null;
    this.newFunction = function() {
        //do something, for example:
        this.someVar = "Hello World!";
    };
}

var foo = new SomeType();
foo.newFunction();
alert(foo.someVar);

newFunction()内,使用this标识符引用实例foo。所以,如果你在newFunction内写道:

this.someVar = "Hello World!";

然后foo.someVar将等于“Hello World!”。因此,foo不会作为输入传递,但可以使用this固有地访问。