js 对象和构造函数
一、對象的創(chuàng)建方法
題外話:
java c++ 同樣能生產(chǎn)出對象,但是是死的
JavaScript 生產(chǎn)出的對象是活的,更像是人的生長過程,后天可以增加和刪除方法
用字面量創(chuàng)建
var obj = {};二、對象的增刪改
一旦經(jīng)歷了 var 的操作,所得出的屬性,window ,這種的屬性叫做不可配置的屬性。不可配置的屬性 delete 不掉
var a = 'abc'; a.name = 'mary'; console.log(a.name); // undefined二、構(gòu)造函數(shù)
Object 就像一個(gè)對象工廠一樣,執(zhí)行一次生成一個(gè)對象,
并且每一次生成的對象都是一模一樣且獨(dú)一無二的
自定義的
Object.create(prototype)
用字面量創(chuàng)建對象和用構(gòu)造函數(shù)創(chuàng)建對象的結(jié)果是一樣的
var obj = {}; var obj1 = new Object(); // 在控制臺打開里面的東西都是一樣的 ? 因?yàn)橐?jīng)過包裝類三、構(gòu)造函數(shù)的內(nèi)部原理
構(gòu)造函數(shù)三部曲
有了 new 關(guān)鍵字之后,就能讓普通函數(shù)擁有構(gòu)造函數(shù)的功能
function Student(name, age, sex) {// 1. 在函數(shù)體的最前面隱式添加一個(gè) this 對象// var this = {// name : '',// age : '',// sex : ''// }// 2. 執(zhí)行 this.xxx = xxxthis.name = name;this.age = age;this.sex = sex;// 3. 隱式返回 this 對象// return this; }var student = new Student('張三', 18, 'male'); // 用一個(gè)變量接收一下模擬構(gòu)造函數(shù)
function Person(name, height) {var that = {};that.name = name;that.height = height;return that; }// 只要加了 new 關(guān)鍵字,就會(huì)讓上面的函數(shù)的返回值強(qiáng)制變成一個(gè)對象 var person = Person('張三', 180);- 對象實(shí)例化:new 一個(gè)對象
- 對象實(shí)例化只有得到的每一個(gè)對象叫實(shí)例 – 對象 person 是 構(gòu)造函數(shù) Person 的一個(gè)實(shí)例
檢測某個(gè)實(shí)例是不是某個(gè)構(gòu)造函數(shù)所構(gòu)造出來的 ? 構(gòu)造函數(shù).prototype.isPrototypeOf(實(shí)例)
Person.prototype.isPrototypeOf(person); // true返回某個(gè)實(shí)例的原型 ? Object.getPrototypeOf(實(shí)例)
Object.getPrototypeOf(person); // 返回 person 的原型對象 --- {construcotr:...}總結(jié)
以上是生活随笔為你收集整理的js 对象和构造函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 织梦task_do.php,织梦2016
- 下一篇: 2011计算机2级,全国计算机等级考试四
