markdown JavaScript创建对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown JavaScript创建对象相关的知识,希望对你有一定的参考价值。
### 对象字面量
var o = {
p:"I’m in Object literal",
alertP:function(){
alert(this.p);
}
}
### new表达式
function O(){
this.p = "I’m in constructed object";
this.alertP = function(){
alert(this.p);
}
}
var o = new O();
在使用new操作符来调用一个构造函数的时候,发生了什么呢?其实很简单,就发生了四件事:
var obj ={};
obj.__proto__ = CO.prototype;
CO.call(obj);
return obj;
第一行,创建一个空对象obj。
第二行,将这个空对象的__proto__成员指向了构造函数对象的prototype成员对象,这是最关键的一步,具体细节将在下文描述。
第三行,将构造函数的作用域赋给新对象,因此CA函数中的this指向新对象obj,然后再调用CO函数。于是我们就给obj对象赋值了一个成员变量p,这个成员变量的值是” I’min constructed object”。
第四行,返回新对象obj。当构造函数里包含返回语句时情况比较特殊,这种情况会在下文中说到。
[参考](https://www.cnblogs.com/wangyingblog/p/5583825.html)
//无意间看到这段代码
function inheritPrototype(subType,superType){
var prototype = Object(superType.prototype);
prototype.constructor = subType;
subType.prototype = prototype;
}
// 以上是原型继承的优化方法
// 看到这个Object顺便追究一下Object这个万物(JS)之本
var obj = Object({ name:"tcc"});//与加new等效
console.log(obj instanceof Object);//true
console.log(obj.name);//tcc
var ostr = Object("tcc");//Object构造函数也会像工厂方法一样,根据传入的值的类型返回相应的基本包装类型的实例
ostr.age = 18;
console.log(ostr instanceof String);//true
console.log(ostr.age);//18 可以存数据
var str = String("tcc");//这是转型函数,其它的还有Nmber()、 Boolean()、 Array()
var str = new String("tcc");//这是才是引用类型
```
function Person(){
this.name;
}
Person.prototype.age = 12;
var p1 = new Person();
console.log(p1.name); //undefined
console.log(p1.age); //12
-------------------------------------------------
Person.__proto__.age = 34;
var p2 = Object.create(Person);
console.log(p2.name); //Person
console.log(p2.age); //34
//
Object.create = function (o) {
var F = function () {};
F.prototype = o;
return new F();
};
```
[参考1](https://blog.csdn.net/blueblueskyhua/article/details/73135938)
[参考2](https://blog.csdn.net/chjunjun/article/details/80698710)
以上是关于markdown JavaScript创建对象的主要内容,如果未能解决你的问题,请参考以下文章
markdown 面向对象的JavaScript
markdown JavaScript和对象模型
markdown 在Javascript中删除Diacritics(可用作普通函数,`String`对象和jQuery插件的扩展)。
markdown Catatan terkait dengan pemanfaatan javascript untuk mengakses HTML DOM(文档对象模型)
markdown MEDIUM BLOG POST - Javascript的3个主要范例:面向对象编程的三个原则[第2部分,共4部分]
markdown JS:创建对象