传递javascript对象属性

时间:2011-02-22 04:24:48

标签: javascript

如何在以下情况下传递对象属性:

ObjectTest = function()
{
    this.var1= "3";    
    this.var2= "";
}

和电话

    ObjectTest .prototype.allFriends = function() {

        function bindEvents() {
             //pass var1 here
        }
   }

有没有办法传递ObjectTest属性而不将它们作为bindEvents()的属性传递。如果可能的话,我更喜欢全球解决方案

3 个答案:

答案 0 :(得分:2)

ObjectTest.prototype.allFriends = function() {
    do_smth_with(this.var1);
}

请注意,您通过调用ObjectTest创建了新的new ObjectTest();没有new关键字,它将无效。

编辑仍然工作,因为内部函数将继承外部函数(allFriendsscope

ObjectTest .prototype.allFriends = function() {
    function bindEvents() {
         console.log(this.var1);
    }
}

如果仍然不适合您,请使用对父this的引用:

ObjectTest .prototype.allFriends = function() {
    var parent = this;
    function bindEvents() {
         console.log(parent.var1);
    }
}

答案 1 :(得分:2)

您在构造函数中使用的allFriends原型中使用相同的代码:

ObjectTest = function()
{
    this.var1= "3";    
    this.var2= "";
}

ObjectTest.prototype.allFriends = function() {
    alert(this.var1);
}

答案 2 :(得分:2)

它是一样的:this.var1 - 运行这个:

ObjectTest = function() {
    this.var1 = 3;    
    this.var2 = "";
};

ObjectTest.prototype.allFriends = function() {
    alert(this.var1);
};

x = new ObjectTest();
x.allFriends();

或者看到这个小提琴:http://jsfiddle.net/9XYZU/