将函数应用于变量?的JavaScript / jQuery的

时间:2012-12-01 22:25:39

标签: javascript jquery

例如

var contents = 'some text';

function fileSave(path){
// I'll handle saving the file, but I need the file contents
}

contents.fileSave('index.html');

因此,当函数对contents变量很有趣时,该函数可以访问该变量。就像replace()在JavaScript中的工作方式一样。

EX。

str.replace();

但在这种情况下

contents.fileSave();

变量是可互换的,该函数也适用于附加的任何变量。

抱歉,新手..

4 个答案:

答案 0 :(得分:2)

这可能是更好的方法,无需修改String.prototype

function fileEditor(path) {
    this.save = function(data) {
       // do something with path & data
    }
}

用法是,

var someFile = new fileEditor("index.html");
someFile.save("some text");

答案 1 :(得分:1)

如果要向所有字符串添加方法,请将其添加到String.prototype

String.prototype.fileSave = function(path) {
    var str = this + "";
    // work with the string
    console.log(str, path);
};

请注意您的环境。扩展原生原型可能会与其他代码冲突。您是否需要自行决定是否存在问题。

var contents = 'some text';

contents.fileSave('index.html'); // some text index.html

答案 2 :(得分:0)

此代码将函数newMethod附加到所有String实例,您也可以为其他类型实现。

newMethod = function (signature) {...}
String.prototype.newMethod = newMethod
'a'.newMethod()

正如其他人所指出的那样,这可能不是最好的方式,但我仍然认为你理解javascript的工作方式可能很有意思(好吧,至少要开始使用javascript中的原型)。

答案 3 :(得分:0)

永远不要编辑您不拥有的对象的原型! 解决方案1:使用构造函数,创建一个新的对象,如丢失的源代码所写 解决方案2:通过对象文字声明一个对象:

var content={
    text:"loremipsum",
    save:function(){ // do work here }
}

并通过content.save()保存。