例如
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();
变量是可互换的,该函数也适用于附加的任何变量。
抱歉,新手..
答案 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()保存。