我是否可以访问'这个'的属性?通过函数传递`this`时?

时间:2016-03-21 18:27:12

标签: javascript jquery

注意:整个问题基于一个问题是语法错误的情况;通过这个'实际上没有问题。问题应该结束。

例如,以下作品:

$('.base-icons').click(function () {
   selectedIcon($(this).attr("src").split(/\/(\/*)/));
});

var selectedIcon = function(myObj) {
   console.log(myObj);
};

按预期打印缩短的字符串。以下 不起作用

$('.base-icons').click(function () {
   selectedIcon(this);
});

var selectedIcon = function(myObj) {
   console.log($(myObj).attr("src").split(/\/(\/*)/)[6]);
};

打印undefined。为什么?谢谢。

3 个答案:

答案 0 :(得分:1)

  

例如,以下作品:

selectedIcon($(this).attr("src").split(/\/(\/!*)/)[6])

var selectedIcon = function(myObj) {
   console.log(myObj)
}
     

按预期打印缩短的字符串。以下不起作用:

selectedIcon(this)

var selectedIcon = function(myObj) {
   console.log($(myObj).attr("src").split(/\/(\/!*)/)[6])
}
     

因为它打印未定义。为什么?谢谢。

在问题selectedIcon处致{p> undefined时,javascriptTypeError,导致Uncaught TypeError: selectedIcon is not a function

问题中的两个示例都应该返回错误。

window.onerror = function(e) {
  console.info(e);
  alert(e);
}

selectedIcon("abc");

var selectedIcon = function (myObj) {
   alert(myObj)
}



 <select ng-model="detail.skuName"
            class="form-input-wrapper form-select-hidden">

        <option data-ng-repeat="sku in config.skuList" ng-selected="sku"
                >{{sku}}
        </option>

    </select>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

是的,您可以在通过函数传递this时访问this的属性。

答案 2 :(得分:0)

您可以像这样访问此属性。

$(this).attr("href");