如何调用函数并使用句点符号传递变量

How to call a function and pass a variable with period notation

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

var foo = 'some string';

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

//should log 'some string'

我认为这可以通过 javascript 框架实现,比如 jquery 我可以在 somevar.myFunction()

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

我不太确定你的意思。但是在 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.

固有地访问

您最终要找的是 Object.prototype. Any object is chained to the Object's prototype chain。这意味着,简而言之,只要一个对象不拥有 属性,它就会检查它的原型。原型又是一个对象,依此类推。

示例:

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

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

但是,在您真正了解自己在做什么之前不要开始使用它,因为它 not necessarily good practice 用于扩展本机对象的原型。