我想在函数中添加方法,以便我可以在链中调用它们
我想做什么:
如果您使用过jQuery,那么您必须看到类似
的语法$("#ID");
返回元素
$("#ID").css("property")
返回元素属性的css值
如何在不使用jQuery的情况下使用相同的语法定义自定义方法呢?
答案 0 :(得分:2)
这是一个简单的:
function Get( element_id ) {
this.node = document.querySelector(element_id);
this.css = function(prop, val) {};
}
var get = function( element_id )
{
return new Get( element_id );
};
get('#ID').css("property");
答案 1 :(得分:1)
我不确定你的意思,但我会试一试。
方法链接通常是通过从原型方法返回this
对象来执行的:
function MyClass(...) {
...
}
MyClass.prototype = {
methodOne: function(...) {
...
return this;
},
methodTwo: function(...) {
...
return this;
},
...
};
所以你可以这样做:
var obj = new MyClass(...);
obj.methodOne(...).methodTwo(...);
当您实际上没有期望值作为回报或无法应用时,这可能很有用。例如:
function MyClass(name) {
this.name = name;
}
MyClass.prototype.greet = function(greeting) {
return greeting + " " + this.name;
}
var obj = new MyClass("John");
alert(obj.greet("Hello")); // It alerts "Hello John".
在这种情况下,您需要 greet
方法中的值。