分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

js对象

发布时间:2023-09-06 02:10责任编辑:苏小强关键词:js

1 属性

1. Configurable: 表示能否通过 delete 删除属性从而重新定义属性,能否修改属性
??的特性,或者能否把属性修改为访问器属性,设置为false后,在设置除Writable就会 ?????

??有错误。

2. Enumerable: 表示能否通过 for-in 循环返回属性。

3. Writable: 表示能否修改属性的值

4. Value: 包含这个属性的数据值

5. Object.defineProperty():可以修改以上属性,三个参数:属性所在的对象、属

??性的名字和一个描述符对象。

??var person = {};

???Object.defineProperty(person, "name", {

????writable: false,

????value: "Nicholas"

???});

访问器属性

1. 访问器属性不包含数据值;
2. 它们包含一对儿 getter 和 setter 函数(不过,这两个函数都不是必需的)。

3. 在读取访问器属性时,会调用 getter 函数,这个函数负责返回有效的值;

4. 在写入访问器属性时,会调用 setter 函数并传入新值,这个函数负责决定如何处理数据。

属性:

1. Configurable :表示能否通过 delete 删除属性从而重新定义属性,能否修改属性的特 性,或者能否把属性修改为数据属性。
2. Enumerable: 表示能否通过 for-in 循环返回属性

3. Get: 在读取属性时调用的函数。默认值为 undefined。

4. Set: 在写入属性时调用的函数

例子:

var book = {

_year: 2004,

edition: 1

};

Object.defineProperty(book, "year", {

get: function(){

return this._year;

},

set: function(newValue){

if (newValue > 2004) {

this._year = newValue;

this.edition += newValue - 2004;

} }

});

book.year = 2005;

alert(book.edition); //2

??:可以把“years”写成一个对象,{_year: {Value:...}}

3 创建对象

1工厂函数:

function createPerson(name) {

var o = new Object();

o.age = age;

o.sayName = function () {...}

}

2构造函数(this)

过程:

(1) 创建一个新对象;

(2) 将构造函数的作用域赋给新对象(因此 this 就指向了这个新对象);

(3) 执行构造函数中的代码(为这个新对象添加属性);

(4) 返回新对象。

注意:

(1)作为普通函数:属性和方法都被添加给 window 对象

(2) 构造函数问题:就是每个方法都要在每个实例上重新创建一遍

3原型模式

 4动态原型模式(构造函数+原型写一起)
 

5 寄生构造函数模式 创建一个函数 该函数的作用仅仅是封装创建对象的代码 然后再返回新创建的对象 稳妥构造函数模式不适用new 不使用this

function Person(name, age, job){

var o = new Object();

o.name = name;

o.age = age;

o.job = job;

o.sayName = function(){

alert(this.name);

};

return o; }

var friend = new Person("Nicholas", 29, "Software Engineer");

friend.sayName(); //"Nicholas"

4继承:

1. 确定原型和实例的关系
(1)instanceof, 实例 idstanceof Person

(2)isPrototypeOf Person.prototype.isPrototypeOf(p1)

2. 原型链问题:包含引用类型值的原型

3. 构造函数+原型 实线组合继承,会调用两次构造函数

4. 原型式继承

???function object(0) {

???????function F() {}

???????F.prototype = o;

???????return new F()

???}

5. 寄生继承

???function createAnother(original) {

???????var clone=object(original); //通过调用函数创建对象

???????clone.sayHi = function(){

???????????alert("hi");

???????};

???????return clone;

6. 寄生组合式继承

function inheritPrototype(subType, superType){

???var prototype = object(superType.prototype);

???prototype.constructor = subType;

???subType.prototype = prototype;

???}

js对象

原文地址:https://www.cnblogs.com/asasas/p/9472489.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved