添加方法来运行

时间:2013-04-06 12:58:58

标签: javascript jquery

我想在函数中添加方法,以便我可以在链中调用它们

我想做什么:

如果您使用过jQuery,那么您必须看到类似

的语法
$("#ID");

返回元素

$("#ID").css("property")

返回元素属性的css值

如何在不使用jQuery的情况下使用相同的语法定义自定义方法呢?

2 个答案:

答案 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方法中的值。