js call方法使用

2021-08-25 08:48:02 字數 630 閱讀 4003

今天看到公司一道js面試題,**如下,問使用getname方法列印出1,2,3

var name = "1";

var obj = }}

console.info(obj.prop.getname()); //3

console.info(obj.prop.getname.call(obj)); //2

console.info(obj.prop.getname.call(this)); //1

這題考察兩個點,一是 this代表當前物件

二是如何改變當前物件 這裡使用call方法

如果想得到3 直接 obj.prop.getname() 即可,這事方法的當前物件是prop

如果想得到2 我們可以 obj.prop.getname.call(obj) 就是把obj物件傳到方法內,這時候的this物件是obj, this.name 等同於obj.name

1也是同理 obj.prop.getname.call(this) 這裡的this是當前頁面 傳window也是一樣的

function calltest(name, price) 

calltest.call(this, 'superbing', 100);

js call 方法的作用

2016年09月27日 15 49 15 先看看關於call 的官方解釋,呼叫乙個物件的乙個方法,以另乙個物件替換當前物件。看了這樣的解釋,或許讓你更摸不著頭腦了。看例子 var x 我是全域性變數 定義全域性變數x function a 定義普通函式,彈出當前指標所包含的變數x的值 functio...

js call 方法的作用

先看看關於call 的官方解釋,呼叫乙個物件的乙個方法,以另乙個物件替換當前物件。看了這樣的解釋,或許讓你更摸不著頭腦了。看例子 var x 我是全域性變數 定義全域性變數x function a 定義普通函式,彈出當前指標所包含的變數x的值 function f 返回值為 我是在函式類結構a中宣告...

js call 方法的作用

2016年09月27日 15 49 15 先看看關於call 的官方解釋,呼叫乙個物件的乙個方法,以另乙個物件替換當前物件。看了這樣的解釋,或許讓你更摸不著頭腦了。看例子 var x 我是全域性變數 定義全域性變數x function a 定義普通函式,彈出當前指標所包含的變數x的值 functio...