js中可以改變作用域的三中方式(改變this)

2021-09-30 13:14:58 字數 558 閱讀 2576

第二種放方法:使用call()方法: 

有關call方法:

window.color="red";

var o =;

function saycolor(a,b)

saycolor();//red

saycolor.call(this,1,2);//red

saycolor.call(window,1,2);//red

saycolor.call(o,1,2);//blue  

這樣擴充的最大好處,就是物件不需要與方法有任何耦合關係。

第三種方法:使用new關鍵字:

function person(name,age); }

var p1 = new person("james",27);

var p2 = new person("coook",24);

p1.sayname(); p2.sayname();

lnew關鍵字:

0開闢堆空間 1建立物件;2將建構函式作用域賦值給新物件(this就指向了該新物件);3執行建構函式中的**(為新物件新增屬性);4返回新物件

類的三中方法

在類裡可以定義三種方法 1,例項方法 方法的第乙個引數是self 2,類方法 方法的第乙個引數是cls 表示當前類 需要帽子 classmethod 3,靜態方法 方法沒有引數,帶有帽子 staticmethod class person object country 中國 skin color 黃...

js中會改變作用域的兩個語句

在非嚴格模式的情況下eval可以接受乙個字串來動態的改變作用域,eval var a 12 function foo str,a var b 4 foo var b 3 2 console.log window.a 12動態的給eval傳遞字串改變了function foo的作用域。而且第一句的 e...

js中的作用域和作用域

作用域是在執行時 中的某些特定部分中變數,函式和物件的可訪問性 簡單的說就好似變數能起到作用的範圍 區域性作用域 也可以叫做函式作用域 一般只在固定的 片段內可訪問到,最常見的例如函式內部 如下 在我們在函式中用var關鍵字宣告乙個 變數 a 在函式外輸出a的值 function scope con...