如何调用函数并使用句点符号传递变量
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 用于扩展本机对象的原型。
我以前见过这种用法,但不确定如何实际实现它。如何使用这种语法 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 用于扩展本机对象的原型。