今天看到公司一道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...