Javascript 调用函数,即在函数中,在函数中
我有一个这样的脚本(JS) 如何在同一个函数“Quick”(在另一个this.x函数中)中调用.getById()。 从外面看,我会这样称呼它Javascript 调用函数,即在函数中,在函数中,javascript,Javascript,我有一个这样的脚本(JS) 如何在同一个函数“Quick”(在另一个this.x函数中)中调用.getById()。 从外面看,我会这样称呼它 var x = new Quick(); x.getById('someid'); 但是不要认为我应该在同一个函数中声明一个新的函数实例。 function Quick () { this.getById = function(id) { // use: = function(id) { return documen
var x = new Quick();
x.getById('someid');
但是不要认为我应该在同一个函数中声明一个新的函数实例。
function Quick () {
this.getById = function(id) { // use: = function(id) {
return document.getElementById(id);
};
this.doSomethingElse = function(id) { // pass the desired 'id' argument and
return this.getById(id).nodeName; // Use the this reference
};
}
如果您对链接能力感兴趣
您可以做的是:
function Quick () {
var el; // internal variable
this.getById = function(id) {
el = document.getElementById(id);
return this; // To keep your Methods chainable
};
this.getNodeName = function() {
console.log( el.nodeName );
return this; // To keep your Methods chainable
};
}
var x = new Quick();
x.getById('test').getNodeName(); // "DIV"
模块模式将更适合您的需求
var Quick = {
getById: function(id) {
return document.getElementById(id);
},
doSomethingElse: function () {
return Quick.getById('test').nodeName;
}
}
除了没有使用有效的函数语法之外,您的代码很好。“this.getById”>“this.getById=function”。它几乎是ES6,所以你只是领先于你的时代…这是无效的javascript。您应该使用
this.getById=function(id){…}代码>或在Quick.prototype
@dandavis中定义getById
。@dandavis是的,我不小心在问题中忘记了这一点,但在我的代码中它是有效的。这两者之间的主要区别在哪里?应该是这个。getById()而是关于静态/单例访问的。如果您只是共享了功能,那么就没有必要“新建”它。
function Quick () {
var el; // internal variable
this.getById = function(id) {
el = document.getElementById(id);
return this; // To keep your Methods chainable
};
this.getNodeName = function() {
console.log( el.nodeName );
return this; // To keep your Methods chainable
};
}
var x = new Quick();
x.getById('test').getNodeName(); // "DIV"
var Quick = {
getById: function(id) {
return document.getElementById(id);
},
doSomethingElse: function () {
return Quick.getById('test').nodeName;
}
}