object.defineproperty
let obj =
object.defineproperty(obj, "key1", )
console.log(object.getownpropertydescriptor(obj, "key0")); //
console.log(object.getownpropertydescriptor(obj, "key1")); //
判斷物件是否有指定屬性或方法而不是繼承的
obj.hasownproperty("tostring")
獲取物件屬性的陣列
object.getownpropertynames(obj)
object.keys(obj) // 獲取不到不可列舉(enumerable: false)的屬性
object.assign
assign() 用於將所有可列舉屬性的值從乙個或多個源物件複製到目標物件。同 $.extend();
object.assign({}, obj); //
$.extend({}, obj); //
物件和json的轉化let xmobj =
// 序列化成json
var res = json.stringify(xmobj, null, ' '); // typeof res == "string"
// 解析成物件
var reso = json.parse(res); // typeof reso == "object"
先看一段**function person(name, age)
person.prototype.work=function(){}
function programmer(name,age)
programmer.prototype = new person();
programmer.prototype.code=function(){}; // 如果寫成物件會覆蓋繼承來的屬性和方法,即賦值為。
let example = new programmer('碼農',24); // 建立例項,example是例項,programmer是原型。
object.prototype.sth = function(){}
new的過程:建立乙個空物件,讓this指向它,通過this.name,this.age等賦值,最終返回this。
原型和例項
在上面**中,programmer
是原型,example
是它的例項。用instanceof
檢測,有
example instanceof programmer === true
example instanceof person === true
example instanceof object === true
通過example.constructor
屬性返回對建立此物件的陣列函式的引用。
example.constructor===person
example.constructor===person.prototype.constructor
但是constructor 屬性易變,不可信賴,它可以通過修改prototype
而手動修改。
例項的__proto__
對應原型的prototype
example.__proto__===programmer.prototype
example.__proto__.__proto__===person.prototype
即programmer.prototype.__proto__
example.__proto__.__proto__.__proto__===object.prototype
所有物件都是object的例項,並繼承object.prototype的屬性和方法。
原型鏈找乙個屬性,首先在example.__proto__
去找,如果沒有,再去example.__proto__.__proto__
找,……,再到object.prototype
,一直到null
,即object.prototype.__proto__ === null
。這個串起來的鏈就是原型鏈。
比如:example.code
、example.work
、example.dosth
、example.tostring
都有,而example.foo
就為undefined
。
javaScript 原型物件與原型鏈
proto 一般理解為類似構造器原型 函式物件 var o function o.constructor 構造器 由constructor函式產生的 o.constructor.prototype 構造器原型 一般字面量物件 var oo oo.constructor 構造器 由constructo...
原型與原型鏈
原型有兩種 1為顯示原型,2為隱式原型 1.顯示原型 a prototype b 每個函式都有乙個顯示原型prototype當然函式也有隱式原型 c 原型就是函式的乙個屬性,這個屬性名叫做prototype d 這個屬性即prototype的型別是object 2.隱式原型 a proto b 每個...
原型與原型鏈
圖中一共標了7條線,就一條一條的講,講完了就應該懂了 已知 1.函式是物件,原型也是物件 2.proto 每乙個物件都有,prototype是函式特有的 3.物件的 proto 屬性指向該物件建構函式的 原型 prototype 線1.物件f1的 proto 屬性指向其建構函式的原型 其建構函式 f...