JS中的幾種原型物件與例項物件的判別方式

2021-07-24 21:00:24 字數 909 閱讀 2808

hasownproperty():檢測乙個屬性時存在於例項中,還是存在於原型中;

給定屬性存在於例項中,返回ture,反之,存在於原型中,返回false;

in:可與for結合形成for-in迴圈,單獨使用時,in操作符會在通用物件能夠訪問給定屬性時返回ture,無論該屬性存在於原型中還是例項中。

hasownproperty函式返回為false,in返回為ture時,可確定該屬性就是原型中的屬性。

hasprototypeproperty():屬性存在於原型中ture;在例項中修改屬性值後,該屬性返回為false;

原型物件存在的問題:

function person()

person.prototype =

};var person1 = new person();

var person2 = new person();

person1.friends.push("van");

alert(person1.friends); //"shelby,court,van"

alert(person2.friends); //"shelby,court,van"

alert(person1.friends === person2.friends); //true

person.prototype物件有個名為friend的屬性,該屬性包含乙個字串陣列,然後建立了兩個例項person1 person2,接著修改了person1.friend引用的陣列,向陣列中新增了

乙個字串。

由於person1.friend陣列在於person.prototype而非person1中,故剛剛的修改也會修改person.prototype的值,即person2.friend的值也會被修改變為shellby,court,van;

JS原型物件

原型prototype 將函式定義在全域性作用域中的缺點 1.會汙染全域性作用域的命名空間,如 函式functiona 那麼在全域性作用域中就不能再出現functiona這個命名了。2.定義在全域性作用域中不安全。因此,就用到了主角 原型 1.所有的函式都有原型物件 2.當函式以建構函式的形式呼叫時...

js物件 原型

物件 在js裡,除了字串,數字,boolean,null和undefined之外,其他的js值都是物件。js中物件可以分為普通物件和函式物件。普通物件 是除函式物件外的,都可以成為普通物件。函式物件 是通過new function產生的物件。這一種是最常見的定義函式的方法 function foo1...

js原型物件

在js中,每乙個建立的的函式都會有乙個prototype 屬性,這個屬性指向乙個物件,這個物件就是原型物件 function lla console.log lla.prototype chrome瀏覽器下的結果 首先,當你用new 呼叫了乙個函式,就會建立乙個物件例項然後返回這個物件 可以看到a ...